[llvm] 2d7df31 - Revert "[InstallAPI] Add --extra* and --exclude* cli options for header input (#86522)"
Cyndy Ishida via llvm-commits
llvm-commits at lists.llvm.org
Mon Mar 25 12:50:56 PDT 2024
Author: Cyndy Ishida
Date: 2024-03-25T15:50:46-04:00
New Revision: 2d7df3167b12e3f3330a6b6e2f83715f8bbad67e
URL: https://github.com/llvm/llvm-project/commit/2d7df3167b12e3f3330a6b6e2f83715f8bbad67e
DIFF: https://github.com/llvm/llvm-project/commit/2d7df3167b12e3f3330a6b6e2f83715f8bbad67e.diff
LOG: Revert "[InstallAPI] Add --extra* and --exclude* cli options for header input (#86522)"
This reverts commit b7d8c6188986f62573b9516fe27fdd0c7df1aaf9. And
This reverts commit 2d40f179124f874aca4cf1145fdbc42fb8fb17f3.
It caused a build failure i'll need to reproduce.
` error: could not convert ‘Rule’ from ‘llvm::Regex’ to ‘llvm::Expected<llvm::Regex>’`
Added:
Modified:
clang/include/clang/Basic/DiagnosticInstallAPIKinds.td
clang/include/clang/InstallAPI/HeaderFile.h
clang/include/clang/InstallAPI/MachO.h
clang/lib/InstallAPI/Frontend.cpp
clang/lib/InstallAPI/HeaderFile.cpp
clang/tools/clang-installapi/InstallAPIOpts.td
clang/tools/clang-installapi/Options.cpp
clang/tools/clang-installapi/Options.h
llvm/include/llvm/TextAPI/Utils.h
llvm/lib/TextAPI/Utils.cpp
Removed:
clang/test/InstallAPI/Inputs/Simple/Extra/SimpleExtraAPI1.h
clang/test/InstallAPI/Inputs/Simple/Extra/SimpleExtraAPI2.h
clang/test/InstallAPI/Inputs/Simple/Simple.framework/Headers/Basic.h
clang/test/InstallAPI/Inputs/Simple/Simple.framework/Headers/External.h
clang/test/InstallAPI/Inputs/Simple/Simple.framework/Headers/Simple.h
clang/test/InstallAPI/Inputs/Simple/Simple.framework/Headers/SimpleAPI.h
clang/test/InstallAPI/Inputs/Simple/Simple.framework/PrivateHeaders/SimplePrivate.h
clang/test/InstallAPI/Inputs/Simple/Simple.framework/PrivateHeaders/SimplePrivateSPI.h
clang/test/InstallAPI/Inputs/Simple/Simple.yaml
clang/test/InstallAPI/Inputs/Simple/SimpleInternalAPI.h
clang/test/InstallAPI/Inputs/Simple/SimpleInternalAPI2.h
clang/test/InstallAPI/Inputs/Simple/SimpleInternalSPI.h
clang/test/InstallAPI/extra-exclude-headers.test
################################################################################
diff --git a/clang/include/clang/Basic/DiagnosticInstallAPIKinds.td b/clang/include/clang/Basic/DiagnosticInstallAPIKinds.td
index 27df731fa28627..a4c6e630ac5fd8 100644
--- a/clang/include/clang/Basic/DiagnosticInstallAPIKinds.td
+++ b/clang/include/clang/Basic/DiagnosticInstallAPIKinds.td
@@ -15,9 +15,6 @@ let CategoryName = "Command line" in {
def err_cannot_write_file : Error<"cannot write file '%0': %1">;
def err_no_install_name : Error<"no install name specified: add -install_name <path>">;
def err_no_output_file: Error<"no output file specified">;
-def err_no_such_header_file : Error<"no such %select{public|private|project}1 header file: '%0'">;
-def warn_no_such_excluded_header_file : Warning<"no such excluded %select{public|private}0 header file: '%1'">, InGroup<InstallAPIViolation>;
-def warn_glob_did_not_match: Warning<"glob '%0' did not match any header file">, InGroup<InstallAPIViolation>;
} // end of command line category.
let CategoryName = "Verification" in {
diff --git a/clang/include/clang/InstallAPI/HeaderFile.h b/clang/include/clang/InstallAPI/HeaderFile.h
index 235b4da3add840..70e83bbb3e76f6 100644
--- a/clang/include/clang/InstallAPI/HeaderFile.h
+++ b/clang/include/clang/InstallAPI/HeaderFile.h
@@ -13,9 +13,7 @@
#ifndef LLVM_CLANG_INSTALLAPI_HEADERFILE_H
#define LLVM_CLANG_INSTALLAPI_HEADERFILE_H
-#include "clang/Basic/FileManager.h"
#include "clang/Basic/LangStandard.h"
-#include "clang/InstallAPI/MachO.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/Regex.h"
@@ -58,10 +56,6 @@ class HeaderFile {
std::string IncludeName;
/// Supported language mode for header.
std::optional<clang::Language> Language;
- /// Exclude header file from processing.
- bool Excluded{false};
- /// Add header file to processing.
- bool Extra{false};
public:
HeaderFile() = delete;
@@ -77,48 +71,17 @@ class HeaderFile {
StringRef getIncludeName() const { return IncludeName; }
StringRef getPath() const { return FullPath; }
- void setExtra(bool V = true) { Extra = V; }
- void setExcluded(bool V = true) { Excluded = V; }
- bool isExtra() const { return Extra; }
- bool isExcluded() const { return Excluded; }
-
bool useIncludeName() const {
return Type != HeaderType::Project && !IncludeName.empty();
}
bool operator==(const HeaderFile &Other) const {
- return std::tie(Type, FullPath, IncludeName, Language, Excluded, Extra) ==
+ return std::tie(Type, FullPath, IncludeName, Language) ==
std::tie(Other.Type, Other.FullPath, Other.IncludeName,
- Other.Language, Other.Excluded, Other.Extra);
+ Other.Language);
}
};
-/// Glob that represents a pattern of header files to retreive.
-class HeaderGlob {
-private:
- std::string GlobString;
- llvm::Regex Rule;
- HeaderType Type;
- bool FoundMatch{false};
-
-public:
- HeaderGlob(StringRef GlobString, llvm::Regex &&, HeaderType Type);
-
- /// Create a header glob from string for the header access level.
- static llvm::Expected<std::unique_ptr<HeaderGlob>>
- create(StringRef GlobString, HeaderType Type);
-
- /// Query if provided header matches glob.
- bool match(const HeaderFile &Header);
-
- /// Query if a header was matched in the glob, used primarily for error
- /// reporting.
- bool didMatch() { return FoundMatch; }
-
- /// Provide back input glob string.
- StringRef str() { return GlobString; }
-};
-
/// Assemble expected way header will be included by clients.
/// As in what maps inside the brackets of `#include <IncludeName.h>`
/// For example,
@@ -130,19 +93,6 @@ class HeaderGlob {
std::optional<std::string> createIncludeHeaderName(const StringRef FullPath);
using HeaderSeq = std::vector<HeaderFile>;
-/// Determine if Path is a header file.
-/// It does not touch the file system.
-///
-/// \param Path File path to file.
-bool isHeaderFile(StringRef Path);
-
-/// Given input directory, collect all header files.
-///
-/// \param FM FileManager for finding input files.
-/// \param Directory Path to directory file.
-llvm::Expected<PathSeq> enumerateFiles(clang::FileManager &FM,
- StringRef Directory);
-
} // namespace clang::installapi
#endif // LLVM_CLANG_INSTALLAPI_HEADERFILE_H
diff --git a/clang/include/clang/InstallAPI/MachO.h b/clang/include/clang/InstallAPI/MachO.h
index 4961c596fd68ae..f0dea8bbd24ccd 100644
--- a/clang/include/clang/InstallAPI/MachO.h
+++ b/clang/include/clang/InstallAPI/MachO.h
@@ -40,7 +40,6 @@ using SymbolSet = llvm::MachO::SymbolSet;
using SimpleSymbol = llvm::MachO::SimpleSymbol;
using FileType = llvm::MachO::FileType;
using PackedVersion = llvm::MachO::PackedVersion;
-using PathSeq = llvm::MachO::PathSeq;
using Target = llvm::MachO::Target;
using TargetList = llvm::MachO::TargetList;
diff --git a/clang/lib/InstallAPI/Frontend.cpp b/clang/lib/InstallAPI/Frontend.cpp
index e07ccb14e0b80a..12cd5fcbc22bf7 100644
--- a/clang/lib/InstallAPI/Frontend.cpp
+++ b/clang/lib/InstallAPI/Frontend.cpp
@@ -138,8 +138,6 @@ std::unique_ptr<MemoryBuffer> createInputBuffer(InstallAPIContext &Ctx) {
SmallString<4096> Contents;
raw_svector_ostream OS(Contents);
for (const HeaderFile &H : Ctx.InputHeaders) {
- if (H.isExcluded())
- continue;
if (H.getType() != Ctx.Type)
continue;
if (Ctx.LangMode == Language::C || Ctx.LangMode == Language::CXX)
diff --git a/clang/lib/InstallAPI/HeaderFile.cpp b/clang/lib/InstallAPI/HeaderFile.cpp
index 0b7041ec8147eb..c2d8372741ee07 100644
--- a/clang/lib/InstallAPI/HeaderFile.cpp
+++ b/clang/lib/InstallAPI/HeaderFile.cpp
@@ -7,7 +7,6 @@
//===----------------------------------------------------------------------===//
#include "clang/InstallAPI/HeaderFile.h"
-#include "llvm/TextAPI/Utils.h"
using namespace llvm;
namespace clang::installapi {
@@ -35,54 +34,4 @@ std::optional<std::string> createIncludeHeaderName(const StringRef FullPath) {
return Matches[1].drop_front(Matches[1].rfind('/') + 1).str() + "/" +
Matches[3].str();
}
-
-bool isHeaderFile(StringRef Path) {
- return StringSwitch<bool>(sys::path::extension(Path))
- .Cases(".h", ".H", ".hh", ".hpp", ".hxx", true)
- .Default(false);
-}
-
-llvm::Expected<PathSeq> enumerateFiles(FileManager &FM, StringRef Directory) {
- PathSeq Files;
- std::error_code EC;
- auto &FS = FM.getVirtualFileSystem();
- for (llvm::vfs::recursive_directory_iterator i(FS, Directory, EC), ie;
- i != ie; i.increment(EC)) {
- if (EC)
- return errorCodeToError(EC);
-
- // Skip files that do not exist. This usually happens for broken symlinks.
- if (FS.status(i->path()) == std::errc::no_such_file_or_directory)
- continue;
-
- StringRef Path = i->path();
- if (isHeaderFile(Path))
- Files.emplace_back(Path);
- }
-
- return Files;
-}
-
-HeaderGlob::HeaderGlob(StringRef GlobString, Regex &&Rule, HeaderType Type)
- : GlobString(GlobString), Rule(std::move(Rule)), Type(Type) {}
-
-bool HeaderGlob::match(const HeaderFile &Header) {
- if (Header.getType() != Type)
- return false;
-
- bool Match = Rule.match(Header.getPath());
- if (Match)
- FoundMatch = true;
- return Match;
-}
-
-Expected<std::unique_ptr<HeaderGlob>> HeaderGlob::create(StringRef GlobString,
- HeaderType Type) {
- auto Rule = MachO::createRegexFromGlob(GlobString);
- if (!Rule)
- return Rule.takeError();
-
- return std::make_unique<HeaderGlob>(GlobString, std::move(*Rule), Type);
-}
-
} // namespace clang::installapi
diff --git a/clang/test/InstallAPI/Inputs/Simple/Extra/SimpleExtraAPI1.h b/clang/test/InstallAPI/Inputs/Simple/Extra/SimpleExtraAPI1.h
deleted file mode 100644
index 83a5b9507de307..00000000000000
--- a/clang/test/InstallAPI/Inputs/Simple/Extra/SimpleExtraAPI1.h
+++ /dev/null
@@ -1 +0,0 @@
-extern int extraGlobalAPI1;
diff --git a/clang/test/InstallAPI/Inputs/Simple/Extra/SimpleExtraAPI2.h b/clang/test/InstallAPI/Inputs/Simple/Extra/SimpleExtraAPI2.h
deleted file mode 100644
index 34fe3364bba84e..00000000000000
--- a/clang/test/InstallAPI/Inputs/Simple/Extra/SimpleExtraAPI2.h
+++ /dev/null
@@ -1 +0,0 @@
-extern int extraGlobalAPI2;
diff --git a/clang/test/InstallAPI/Inputs/Simple/Simple.framework/Headers/Basic.h b/clang/test/InstallAPI/Inputs/Simple/Simple.framework/Headers/Basic.h
deleted file mode 100644
index 08412bb2de2838..00000000000000
--- a/clang/test/InstallAPI/Inputs/Simple/Simple.framework/Headers/Basic.h
+++ /dev/null
@@ -1,103 +0,0 @@
-#import <Foundation/Foundation.h>
-
-// Basic class with no super class
- at interface Basic1
- at end
-
- at interface Basic2 : NSObject
- at end
-
- at interface Basic3 : NSObject
- at property BOOL property1;
- at property(readonly) BOOL property2;
- at property(getter=isProperty3) BOOL property3;
- at property BOOL dynamicProp;
- at end
-
- at interface Basic4 : NSObject {
- at public
- BOOL ivar1;
- at protected
- BOOL ivar2;
- at package
- BOOL ivar3;
- at private
- BOOL ivar4;
-}
- at end
-
-__attribute__((visibility("hidden"))) @interface Basic4_1 : NSObject {
- at public
- BOOL ivar1;
- at protected
- BOOL ivar2;
- at package
- BOOL ivar3;
- at private
- BOOL ivar4;
-}
- at end
-
- at interface Basic4_2 : NSObject {
- at private
- BOOL ivar4;
- at package
- BOOL ivar3;
- at protected
- BOOL ivar2;
- at public
- BOOL ivar1;
-}
- at end
-
- at interface Basic5 : NSObject
-+ (void)aClassMethod;
-- (void)anInstanceMethod;
- at end
-
- at interface Basic6 : NSObject
- at end
-
- at interface Basic6 () {
- at public
- BOOL ivar1;
-}
- at property BOOL property1;
-- (void)anInstanceMethodFromAnExtension;
- at end
-
- at interface Basic6 (Foo)
- at property BOOL property2;
-- (void)anInstanceMethodFromACategory;
- at end
-
-__attribute__((visibility("hidden")))
- at interface Basic7 : NSObject
- at end
-
- at interface Basic7 ()
-- (void) anInstanceMethodFromAnHiddenExtension;
- at end
-
- at interface Basic8 : NSObject
-+ (void)useSameName;
- at end
-
-// Classes and protocols can have the same name. For now they would only clash
-// in the selector map if the protocl starts with '_'.
- at protocol _A
-- (void)aMethod;
- at end
-
- at interface A : NSObject
-- (void)aMethod NS_AVAILABLE(10_11, 9_0);
-- (void)bMethod NS_UNAVAILABLE;
- at end
-
- at interface Basic9 : NSObject
- at property(readonly) BOOL aProperty NS_AVAILABLE(10_10, 8_0);
- at end
-
- at interface Basic9 (deprecated)
- at property(readwrite) BOOL aProperty NS_DEPRECATED_MAC(10_8, 10_10);
- at end
diff --git a/clang/test/InstallAPI/Inputs/Simple/Simple.framework/Headers/External.h b/clang/test/InstallAPI/Inputs/Simple/Simple.framework/Headers/External.h
deleted file mode 100644
index 5dc3c92f34c24d..00000000000000
--- a/clang/test/InstallAPI/Inputs/Simple/Simple.framework/Headers/External.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#import <Foundation/Foundation.h>
-
-// Sub-class an external defined ObjC Class.
- at interface ExternalManagedObject : NSManagedObject
-- (void)foo;
- at end
-
-// Add category to external defined ObjC Class.
- at interface NSManagedObject (Simple)
-- (int)supportsSimple;
- at end
-
-// CoreData Accessors are dynamically generated and have no implementation.
- at interface ExternalManagedObject (CoreDataGeneratedAccessors)
-- (void)addChildObject:(ExternalManagedObject *)value;
-- (void)removeChildObject:(ExternalManagedObject *)value;
-- (void)addChild:(NSSet *)values;
-- (void)removeChild:(NSSet *)values;
- at end
diff --git a/clang/test/InstallAPI/Inputs/Simple/Simple.framework/Headers/Simple.h b/clang/test/InstallAPI/Inputs/Simple/Simple.framework/Headers/Simple.h
deleted file mode 100644
index 12c77098a8d9a7..00000000000000
--- a/clang/test/InstallAPI/Inputs/Simple/Simple.framework/Headers/Simple.h
+++ /dev/null
@@ -1,45 +0,0 @@
-#import <Foundation/Foundation.h>
-
-// Useless forward declaration. This is used for testing.
- at class FooBar;
- at protocol FooProtocol;
-
- at protocol ForwardProcotol;
-
-// Test public global.
-extern int publicGlobalVariable;
-
-// Test weak public global.
-extern int weakPublicGlobalVariable __attribute__((weak));
-
-// Test public ObjC class
- at interface Simple : NSObject
- at end
-
-__attribute__((objc_exception))
- at interface Base : NSObject
- at end
-
- at interface SubClass : Base
- at end
-
- at protocol BaseProtocol
-- (void) baseMethod;
- at end
-
-NS_AVAILABLE(10_11, 9_0)
- at protocol FooProtocol <BaseProtocol>
-- (void) protocolMethod;
- at end
-
- at protocol BarProtocol
-- (void) barMethod;
- at end
-
- at interface FooClass <FooProtocol, BarProtocol>
- at end
-
-// Create an empty category conforms to a forward declared protocol.
-// <rdar://problem/35605892>
- at interface FooClass (Test) <ForwardProcotol>
- at end
diff --git a/clang/test/InstallAPI/Inputs/Simple/Simple.framework/Headers/SimpleAPI.h b/clang/test/InstallAPI/Inputs/Simple/Simple.framework/Headers/SimpleAPI.h
deleted file mode 100644
index d953fac966daf3..00000000000000
--- a/clang/test/InstallAPI/Inputs/Simple/Simple.framework/Headers/SimpleAPI.h
+++ /dev/null
@@ -1 +0,0 @@
-extern int otherFrameworkAPI;
diff --git a/clang/test/InstallAPI/Inputs/Simple/Simple.framework/PrivateHeaders/SimplePrivate.h b/clang/test/InstallAPI/Inputs/Simple/Simple.framework/PrivateHeaders/SimplePrivate.h
deleted file mode 100644
index 5a28cda3928e3d..00000000000000
--- a/clang/test/InstallAPI/Inputs/Simple/Simple.framework/PrivateHeaders/SimplePrivate.h
+++ /dev/null
@@ -1,5 +0,0 @@
-// Test private global variable.
-extern int privateGlobalVariable;
-
-// Test weak private global.
-extern int weakPrivateGlobalVariable __attribute__((weak));
diff --git a/clang/test/InstallAPI/Inputs/Simple/Simple.framework/PrivateHeaders/SimplePrivateSPI.h b/clang/test/InstallAPI/Inputs/Simple/Simple.framework/PrivateHeaders/SimplePrivateSPI.h
deleted file mode 100644
index c9aca30fa82fa8..00000000000000
--- a/clang/test/InstallAPI/Inputs/Simple/Simple.framework/PrivateHeaders/SimplePrivateSPI.h
+++ /dev/null
@@ -1,2 +0,0 @@
-// Test private global variable.
-extern int otherFrameworkSPI;
diff --git a/clang/test/InstallAPI/Inputs/Simple/Simple.yaml b/clang/test/InstallAPI/Inputs/Simple/Simple.yaml
deleted file mode 100644
index 998e51f1a67dcc..00000000000000
--- a/clang/test/InstallAPI/Inputs/Simple/Simple.yaml
+++ /dev/null
@@ -1,3196 +0,0 @@
---- !mach-o
-FileHeader:
- magic: 0xFEEDFACF
- cputype: 0x1000007
- cpusubtype: 0x3
- filetype: 0x6
- ncmds: 15
- sizeofcmds: 1952
- flags: 0x118085
- reserved: 0x0
-LoadCommands:
- - cmd: LC_SEGMENT_64
- cmdsize: 472
- segname: __TEXT
- vmaddr: 0
- vmsize: 12288
- fileoff: 0
- filesize: 12288
- maxprot: 5
- initprot: 5
- nsects: 5
- flags: 0
- Sections:
- - sectname: __text
- segname: __TEXT
- addr: 0x1BC0
- size: 180
- offset: 0x1BC0
- align: 0
- reloff: 0x0
- nreloc: 0
- flags: 0x80000400
- reserved1: 0x0
- reserved2: 0x0
- reserved3: 0x0
- content: 554889E50FBE47085DC3554889E58857085DC3554889E50FBE47095DC3554889E50FBE470A5DC3554889E588570A5DC3554889E55DC3554889E55DC3554889E55DC3554889E50FBE47095DC3554889E58857095DC3554889E5B8010000005DC3554889E55DC3554889E55DC3554889E55DC3554889E55DC3554889E5B0015DC3554889E55DC3554889E55DC3554889E55DC3554889E50FBE47085DC3554889E55DC3554889E55DC3554889E55DC3554889E55DC3
- - sectname: __cstring
- segname: __TEXT
- addr: 0x1C74
- size: 296
- offset: 0x1C74
- align: 0
- reloff: 0x0
- nreloc: 0
- flags: 0x2
- reserved1: 0x0
- reserved2: 0x0
- reserved3: 0x0
- content: 53696D706C65004261736500537562436C6173730053696D706C65496E7465726E616C4150490053696D706C65496E7465726E616C53504900426173696331004261736963320042617369633300426173696334004261736963345F31004261736963345F32004261736963350042617369633600466F6F004261736963370045787465726E616C4D616E616765644F626A6563740048696464656E436C61737300426173696338004100426173696339006465707265636174656400466F6F436C61737300466F6F50726F746F636F6C004261736550726F746F636F6C0042617250726F746F636F6C0050726976617465005072697661746550726F746F636F6C0063313640303A380076323040303A3863313600630076313640303A380042313640303A3800
- - sectname: __objc_methname
- segname: __TEXT
- addr: 0x1D9C
- size: 450
- offset: 0x1D9C
- align: 0
- reloff: 0x0
- nreloc: 0
- flags: 0x2
- reserved1: 0x0
- reserved2: 0x0
- reserved3: 0x0
- content: 70726F7065727479310073657450726F7065727479313A0070726F70657274793200697350726F7065727479330073657450726F7065727479333A0070726F7065727479330054632C5670726F7065727479310054632C522C5670726F7065727479320054632C47697350726F7065727479332C5670726F7065727479330064796E616D696350726F700054632C440069766172310069766172320069766172330069766172340061436C6173734D6574686F6400616E496E7374616E63654D6574686F6400616E496E7374616E63654D6574686F6446726F6D416E457874656E73696F6E0073657450726F7065727479323A00616E496E7374616E63654D6574686F6446726F6D4143617465676F727900546300616E496E7374616E63654D6574686F6446726F6D416E48696464656E457874656E73696F6E00666F6F00737570706F72747353696D706C650075736553616D654E616D6500614D6574686F64006150726F7065727479005F6150726F70657274790054632C522C565F6150726F706572747900626173654D6574686F640070726F746F636F6C4D6574686F64006261724D6574686F64007072697661746550726F636F746F6C4D6574686F6400
- - sectname: __unwind_info
- segname: __TEXT
- addr: 0x1F60
- size: 4152
- offset: 0x1F60
- align: 2
- reloff: 0x0
- nreloc: 0
- flags: 0x0
- reserved1: 0x0
- reserved2: 0x0
- reserved3: 0x0
- content: 010000001C000000010000002000000000000000200000000200000000000001C01B00003800000038000000741C00000000000038000000030000000C0001001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
- - sectname: __eh_frame
- segname: __TEXT
- addr: 0x2F98
- size: 24
- offset: 0x2F98
- align: 3
- reloff: 0x0
- nreloc: 0
- flags: 0x6000000B
- reserved1: 0x0
- reserved2: 0x0
- reserved3: 0x0
- content: 1400000000000000017A520001781001100C070890010000
- - cmd: LC_SEGMENT_64
- cmdsize: 792
- segname: __DATA
- vmaddr: 12288
- vmsize: 8192
- fileoff: 12288
- filesize: 8192
- maxprot: 3
- initprot: 3
- nsects: 9
- flags: 0
- Sections:
- - sectname: __objc_const
- segname: __DATA
- addr: 0x3000
- size: 4952
- offset: 0x3000
- align: 3
- reloff: 0x0
- nreloc: 0
- flags: 0x0
- reserved1: 0x0
- reserved2: 0x0
- reserved3: 0x0
- content: 010000002800000028000000000000000000000000000000741C00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000008000000000000000000000000000000741C000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000028000000280000000000000000000000000000007B1C000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000008000000080000000000000000000000000000007B1C0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000007B1C000000000000D043000000000000010000002800000028000000000000000000000000000000801C00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000800000008000000000000000000000000000000801C000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000801C0000000000002044000000000000010000002800000028000000000000000000000000000000891C00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000800000008000000000000000000000000000000891C000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000891C00000000000070440000000000000100000028000000280000000000000000000000000000009B1C000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000008000000080000000000000000000000000000009B1C0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000009B1C000000000000C044000000000000030000002800000028000000000000000000000000000000AD1C00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000AD1C00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000002800000028000000000000000000000000000000B41C00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000008000000000000000000000000000000B41C00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000002800000028000000000000000000000000000000BB1C0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018000000050000009C1D000000000000771D000000000000C01B000000000000A61D0000000000007F1D000000000000CA1B000000000000B41D000000000000771D000000000000D31B000000000000BE1D000000000000771D000000000000DD1B000000000000CA1D0000000000007F1D000000000000E71B000000000000200000000300000098490000000000009C1D0000000000008A1D0000000000000000000001000000A049000000000000B41D0000000000008A1D0000000000000000000001000000A849000000000000D81D0000000000008A1D000000000000000000000100000010000000040000009C1D000000000000E21D000000000000B41D000000000000F01D000000000000D81D000000000000001E0000000000001B1E000000000000271E00000000000000000000080000000B000000000000000000000000000000BB1C00000000000098340000000000000000000000000000183500000000000000000000000000008035000000000000010000002800000028000000000000000000000000000000C21C000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000004000000B0490000000000002C1E0000000000008A1D0000000000000000000001000000B849000000000000321E0000000000008A1D0000000000000000000001000000C049000000000000381E0000000000008A1D0000000000000000000001000000C8490000000000003E1E0000000000008A1D000000000000000000000100000000000000080000000C000000000000000000000000000000C21C00000000000000000000000000000000000000000000583600000000000000000000000000000000000000000000110000002800000028000000000000000000000000000000C91C000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000004000000D0490000000000002C1E0000000000008A1D0000000000000000000001000000D849000000000000321E0000000000008A1D0000000000000000000001000000E049000000000000381E0000000000008A1D0000000000000000000001000000E8490000000000003E1E0000000000008A1D000000000000000000000100000010000000080000000C000000000000000000000000000000C91C00000000000000000000000000000000000000000000703700000000000000000000000000000000000000000000010000002800000028000000000000000000000000000000D21C000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000004000000F0490000000000003E1E0000000000008A1D0000000000000000000001000000F849000000000000381E0000000000008A1D0000000000000000000001000000004A000000000000321E0000000000008A1D0000000000000000000001000000084A0000000000002C1E0000000000008A1D000000000000000000000100000000000000080000000C000000000000000000000000000000D21C000000000000000000000000000000000000000000008838000000000000000000000000000000000000000000001800000001000000441E0000000000008C1D000000000000F01B000000000000010000002800000028000000000000000000000000000000DB1C000000000000583900000000000000000000000000000000000000000000000000000000000000000000000000001800000001000000511E0000000000008C1D000000000000F61B000000000000000000000800000008000000000000000000000000000000DB1C000000000000C0390000000000000000000000000000000000000000000000000000000000000000000000000000010000002800000028000000000000000000000000000000E21C000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001800000003000000621E0000000000008C1D000000000000FC1B0000000000009C1D000000000000771D000000000000021C000000000000A61D0000000000007F1D0000000000000C1C0000000000002000000002000000104A0000000000002C1E0000000000008A1D0000000000000000000001000000184A0000000000009C1D0000000000008A1D000000000000000000000100000010000000010000009C1D000000000000E21D00000000000000000000080000000A000000000000000000000000000000E21C000000000000703A0000000000000000000000000000C03A0000000000000000000000000000083B0000000000001800000003000000B41D000000000000771D000000000000151C000000000000821E0000000000007F1D000000000000201C000000000000901E0000000000008C1D000000000000261C0000000000001000000001000000B41D000000000000AE1E000000000000E91C0000000000004047000000000000683B00000000000000000000000000000000000000000000B83B00000000000000000000000000004000000000000000110000002800000028000000000000000000000000000000ED1C000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001800000001000000B11E0000000000008C1D0000000000002C1C000000000000100000000800000008000000000000000000000000000000ED1C000000000000583C0000000000000000000000000000000000000000000000000000000000000000000000000000010000002800000028000000000000000000000000000000F41C000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001800000001000000D71E0000000000008C1D000000000000321C000000000000000000000800000008000000000000000000000000000000F41C000000000000083D00000000000000000000000000000000000000000000000000000000000000000000000000001800000001000000DB1E000000000000941D000000000000381C000000000000741C0000000000000000000000000000703D000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000001100000028000000280000000000000000000000000000000A1D000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000008000000080000000000000000000000000000000A1D000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001800000001000000EA1E0000000000008C1D000000000000401C000000000000010000002800000028000000000000000000000000000000161D000000000000603E00000000000000000000000000000000000000000000000000000000000000000000000000001800000001000000EA1E0000000000008C1D000000000000461C000000000000000000000800000008000000000000000000000000000000161D000000000000C83E00000000000000000000000000000000000000000000000000000000000000000000000000000100000028000000280000000000000000000000000000001D1D000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001800000001000000F61E0000000000008C1D0000000000004C1C0000000000000000000008000000080000000000000000000000000000001D1D000000000000783F00000000000000000000000000000000000000000000000000000000000000000000000000000100000028000000280000000000000000000000000000001F1D000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001800000001000000FE1E000000000000771D000000000000521C0000000000002000000001000000204A000000000000081F0000000000008A1D00000000000000000000010000001000000001000000FE1E000000000000131F0000000000000000000008000000090000000000000000000000000000001F1D000000000000284000000000000000000000000000004840000000000000000000000000000070400000000000001000000001000000FE1E000000000000AE1E000000000000261D0000000000002049000000000000000000000000000000000000000000000000000000000000D040000000000000000000000000000040000000000000001800000001000000241F0000000000008C1D00000000000000000000000000008C1D0000000000000100000000000000284A000000000000000000000000000018000000010000002F1F0000000000008C1D00000000000000000000000000008C1D00000000000018000000010000003E1F0000000000008C1D00000000000000000000000000008C1D0000000000000200000000000000884A000000000000E84A0000000000000000000000000000030000002800000028000000000000000000000000000000311D0000000000000000000000000000B8410000000000000000000000000000000000000000000000000000000000001800000003000000241F0000000000008C1D0000000000005C1C0000000000002F1F0000000000008C1D000000000000621C0000000000003E1F0000000000008C1D000000000000681C000000000000020000000000000000000000000000000000000000000000311D0000000000002042000000000000B8410000000000000000000000000000000000000000000000000000000000001800000001000000481F0000000000008C1D0000000000006E1C0000000000001800000001000000481F0000000000008C1D00000000000000000000000000008C1D0000000000000100000000000000484B00000000000000000000000000005F1D0000000000004849000000000000B84200000000000000000000000000000043000000000000000000000000000000000000000000004000000000000000
- - sectname: __objc_data
- segname: __DATA
- addr: 0x4358
- size: 1600
- offset: 0x4358
- align: 3
- reloff: 0x0
- nreloc: 0
- flags: 0x0
- reserved1: 0x0
- reserved2: 0x0
- reserved3: 0x0
- content: 000000000000000000000000000000000000000000000000000000000000000000300000000000005843000000000000000000000000000000000000000000000000000000000000483000000000000000000000000000000000000000000000000000000000000000000000000000009030000000000000A843000000000000000000000000000000000000000000000000000000000000D8300000000000000000000000000000A843000000000000000000000000000000000000000000003831000000000000F843000000000000D0430000000000000000000000000000000000000000000080310000000000000000000000000000000000000000000000000000000000000000000000000000E03100000000000048440000000000000000000000000000000000000000000000000000000000002832000000000000000000000000000000000000000000000000000000000000000000000000000088320000000000009844000000000000000000000000000000000000000000000000000000000000D032000000000000104500000000000000000000000000000000000000000000000000000000000078330000000000001045000000000000E8440000000000000000000000000000000000000000000030330000000000000000000000000000000000000000000000000000000000000000000000000000C03300000000000038450000000000000000000000000000000000000000000000000000000000000834000000000000000000000000000000000000000000000000000000000000000000000000000050340000000000008845000000000000000000000000000000000000000000000000000000000000C83500000000000000000000000000000000000000000000000000000000000000000000000000001036000000000000D845000000000000000000000000000000000000000000000000000000000000E036000000000000000000000000000000000000000000000000000000000000000000000000000028370000000000002846000000000000000000000000000000000000000000000000000000000000F837000000000000000000000000000000000000000000000000000000000000000000000000000040380000000000007846000000000000000000000000000000000000000000000000000000000000103900000000000000000000000000000000000000000000000000000000000000000000000000007839000000000000C846000000000000000000000000000000000000000000000000000000000000E0390000000000000000000000000000000000000000000000000000000000000000000000000000283A0000000000001847000000000000000000000000000000000000000000000000000000000000203B0000000000000000000000000000000000000000000000000000000000000000000000000000103C0000000000006847000000000000000000000000000000000000000000000000000000000000783C0000000000000000000000000000000000000000000000000000000000000000000000000000C03C000000000000B847000000000000000000000000000000000000000000000000000000000000283D0000000000000000000000000000000000000000000000000000000000000000000000000000D03D0000000000000848000000000000000000000000000000000000000000000000000000000000183E0000000000000000000000000000000000000000000000000000000000000000000000000000803E0000000000005848000000000000000000000000000000000000000000000000000000000000E83E0000000000000000000000000000000000000000000000000000000000000000000000000000303F000000000000A848000000000000000000000000000000000000000000000000000000000000983F0000000000000000000000000000000000000000000000000000000000000000000000000000E03F000000000000F8480000000000000000000000000000000000000000000000000000000000008840000000000000704900000000000000000000000000000000000000000000000000000000000070420000000000007049000000000000484900000000000000000000000000000000000000000000D841000000000000
- - sectname: __objc_ivar
- segname: __DATA
- addr: 0x4998
- size: 144
- offset: 0x4998
- align: 3
- reloff: 0x0
- nreloc: 0
- flags: 0x0
- reserved1: 0x0
- reserved2: 0x0
- reserved3: 0x0
- content: 080000000000000009000000000000000A00000000000000080000000000000009000000000000000A000000000000000B00000000000000080000000000000009000000000000000A000000000000000B00000000000000080000000000000009000000000000000A000000000000000B00000000000000080000000000000009000000000000000800000000000000
- - sectname: __data
- segname: __DATA
- addr: 0x4A28
- size: 392
- offset: 0x4A28
- align: 3
- reloff: 0x0
- nreloc: 0
- flags: 0x0
- reserved1: 0x0
- reserved2: 0x0
- reserved3: 0x0
- content: 0000000000000000461D000000000000000000000000000028410000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000048410000000000000000000000000000000000000000000000000000000000003A1D00000000000050410000000000006841000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000008841000000000000000000000000000000000000000000000000000000000000531D0000000000000000000000000000904100000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000B041000000000000000000000000000000000000000000000000000000000000671D0000000000000000000000000000D84200000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000F842000000000000000000000000000000000000000000000000000000000000
- - sectname: __objc_protolist
- segname: __DATA
- addr: 0x4BB0
- size: 32
- offset: 0x4BB0
- align: 3
- reloff: 0x0
- nreloc: 0
- flags: 0x1000000B
- reserved1: 0x0
- reserved2: 0x0
- reserved3: 0x0
- content: 284A000000000000884A000000000000E84A000000000000484B000000000000
- - sectname: __objc_classlist
- segname: __DATA
- addr: 0x4BD0
- size: 160
- offset: 0x4BD0
- align: 3
- reloff: 0x0
- nreloc: 0
- flags: 0x10000000
- reserved1: 0x0
- reserved2: 0x0
- reserved3: 0x0
- content: 8043000000000000D04300000000000020440000000000007044000000000000C044000000000000E8440000000000006045000000000000B04500000000000000460000000000005046000000000000A046000000000000F04600000000000040470000000000009047000000000000E04700000000000030480000000000008048000000000000D04800000000000020490000000000004849000000000000
- - sectname: __objc_catlist
- segname: __DATA
- addr: 0x4C70
- size: 32
- offset: 0x4C70
- align: 3
- reloff: 0x0
- nreloc: 0
- flags: 0x10000000
- reserved1: 0x0
- reserved2: 0x0
- reserved3: 0x0
- content: D03B000000000000903D000000000000E8400000000000001843000000000000
- - sectname: __objc_imageinfo
- segname: __DATA
- addr: 0x4C90
- size: 8
- offset: 0x4C90
- align: 0
- reloff: 0x0
- nreloc: 0
- flags: 0x0
- reserved1: 0x0
- reserved2: 0x0
- reserved3: 0x0
- content: '0000000040000000'
- - sectname: __common
- segname: __DATA
- addr: 0x4C98
- size: 16
- offset: 0x0
- align: 2
- reloff: 0x0
- nreloc: 0
- flags: 0x1
- reserved1: 0x0
- reserved2: 0x0
- reserved3: 0x0
- - cmd: LC_SEGMENT_64
- cmdsize: 72
- segname: __LINKEDIT
- vmaddr: 20480
- vmsize: 10272
- fileoff: 20480
- filesize: 10272
- maxprot: 1
- initprot: 1
- nsects: 0
- flags: 0
- - cmd: LC_DYLD_INFO_ONLY
- cmdsize: 48
- rebase_off: 20480
- rebase_size: 320
- bind_off: 20800
- bind_size: 480
- weak_bind_off: 0
- weak_bind_size: 0
- lazy_bind_off: 0
- lazy_bind_size: 0
- export_off: 21280
- export_size: 896
- - cmd: LC_SYMTAB
- cmdsize: 24
- symoff: 22208
- nsyms: 187
- stroff: 25200
- strsize: 5552
- - cmd: LC_DYSYMTAB
- cmdsize: 80
- ilocalsym: 0
- nlocalsym: 131
- iextdefsym: 131
- nextdefsym: 49
- iundefsym: 180
- nundefsym: 7
- tocoff: 0
- ntoc: 0
- modtaboff: 0
- nmodtab: 0
- extrefsymoff: 0
- nextrefsyms: 0
- indirectsymoff: 0
- nindirectsyms: 0
- extreloff: 0
- nextrel: 0
- locreloff: 0
- nlocrel: 0
- - cmd: LC_ID_DYLIB
- cmdsize: 88
- dylib:
- name: 24
- timestamp: 0
- current_version: 66051
- compatibility_version: 65536
- Content: '/System/Library/Frameworks/Simple.framework/Versions/A/Simple'
- ZeroPadBytes: 3
- - cmd: LC_UUID
- cmdsize: 24
- uuid: 4C4C441D-5555-3144-A104-DD1AF4EF8FE7
- - cmd: LC_VERSION_MIN_MACOSX
- cmdsize: 16
- version: 658432
- sdk: 983040
- - cmd: LC_LOAD_DYLIB
- cmdsize: 96
- dylib:
- name: 24
- timestamp: 0
- current_version: 197722368
- compatibility_version: 19660800
- Content: '/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation'
- ZeroPadBytes: 3
- - cmd: LC_LOAD_DYLIB
- cmdsize: 56
- dylib:
- name: 24
- timestamp: 0
- current_version: 14942208
- compatibility_version: 65536
- Content: '/usr/lib/libobjc.A.dylib'
- ZeroPadBytes: 8
- - cmd: LC_LOAD_DYLIB
- cmdsize: 96
- dylib:
- name: 24
- timestamp: 0
- current_version: 91750400
- compatibility_version: 65536
- Content: '/System/Library/Frameworks/CoreData.framework/Versions/A/CoreData'
- ZeroPadBytes: 7
- - cmd: LC_LOAD_DYLIB
- cmdsize: 56
- dylib:
- name: 24
- timestamp: 0
- current_version: 88539136
- compatibility_version: 65536
- Content: '/usr/lib/libSystem.B.dylib'
- ZeroPadBytes: 6
- - cmd: LC_FUNCTION_STARTS
- cmdsize: 16
- dataoff: 22176
- datasize: 32
- - cmd: LC_DATA_IN_CODE
- cmdsize: 16
- dataoff: 22208
- datasize: 0
-LinkEditData:
- RebaseOpcodes:
- - Opcode: REBASE_OPCODE_SET_TYPE_IMM
- Imm: 1
- - Opcode: REBASE_OPCODE_SET_SEGMENT_AND_OFFSET_ULEB
- Imm: 1
- ExtraData: [ 0x18 ]
- - Opcode: REBASE_OPCODE_DO_REBASE_ULEB_TIMES_SKIPPING_ULEB
- Imm: 0
- ExtraData: [ 0x3, 0x40 ]
- - Opcode: REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB
- Imm: 0
- ExtraData: [ 0x30 ]
- - Opcode: REBASE_OPCODE_DO_REBASE_IMM_TIMES
- Imm: 2
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 3
- - Opcode: REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB
- Imm: 0
- ExtraData: [ 0x40 ]
- - Opcode: REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB
- Imm: 0
- ExtraData: [ 0x30 ]
- - Opcode: REBASE_OPCODE_DO_REBASE_IMM_TIMES
- Imm: 2
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 3
- - Opcode: REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB
- Imm: 0
- ExtraData: [ 0x40 ]
- - Opcode: REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB
- Imm: 0
- ExtraData: [ 0x30 ]
- - Opcode: REBASE_OPCODE_DO_REBASE_IMM_TIMES
- Imm: 2
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 3
- - Opcode: REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB
- Imm: 0
- ExtraData: [ 0x40 ]
- - Opcode: REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB
- Imm: 0
- ExtraData: [ 0x30 ]
- - Opcode: REBASE_OPCODE_DO_REBASE_IMM_TIMES
- Imm: 2
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 3
- - Opcode: REBASE_OPCODE_DO_REBASE_ULEB_TIMES_SKIPPING_ULEB
- Imm: 0
- ExtraData: [ 0x4, 0x40 ]
- - Opcode: REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB
- Imm: 0
- ExtraData: [ 0x30 ]
- - Opcode: REBASE_OPCODE_DO_REBASE_IMM_TIMES
- Imm: 15
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 1
- - Opcode: REBASE_OPCODE_DO_REBASE_IMM_TIMES
- Imm: 3
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 1
- - Opcode: REBASE_OPCODE_DO_REBASE_IMM_TIMES
- Imm: 3
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 1
- - Opcode: REBASE_OPCODE_DO_REBASE_IMM_TIMES
- Imm: 3
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 2
- - Opcode: REBASE_OPCODE_DO_REBASE_IMM_TIMES
- Imm: 8
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 3
- - Opcode: REBASE_OPCODE_DO_REBASE_IMM_TIMES
- Imm: 2
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 1
- - Opcode: REBASE_OPCODE_DO_REBASE_ULEB_TIMES_SKIPPING_ULEB
- Imm: 0
- ExtraData: [ 0x2, 0x8 ]
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 2
- - Opcode: REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB
- Imm: 0
- ExtraData: [ 0x30 ]
- - Opcode: REBASE_OPCODE_DO_REBASE_IMM_TIMES
- Imm: 3
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 1
- - Opcode: REBASE_OPCODE_DO_REBASE_IMM_TIMES
- Imm: 3
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 1
- - Opcode: REBASE_OPCODE_DO_REBASE_IMM_TIMES
- Imm: 3
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 1
- - Opcode: REBASE_OPCODE_DO_REBASE_IMM_TIMES
- Imm: 3
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 4
- - Opcode: REBASE_OPCODE_DO_REBASE_ULEB_TIMES_SKIPPING_ULEB
- Imm: 0
- ExtraData: [ 0x2, 0x10 ]
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 3
- - Opcode: REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB
- Imm: 0
- ExtraData: [ 0x30 ]
- - Opcode: REBASE_OPCODE_DO_REBASE_IMM_TIMES
- Imm: 3
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 1
- - Opcode: REBASE_OPCODE_DO_REBASE_IMM_TIMES
- Imm: 3
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 1
- - Opcode: REBASE_OPCODE_DO_REBASE_IMM_TIMES
- Imm: 3
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 1
- - Opcode: REBASE_OPCODE_DO_REBASE_IMM_TIMES
- Imm: 3
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 4
- - Opcode: REBASE_OPCODE_DO_REBASE_ULEB_TIMES_SKIPPING_ULEB
- Imm: 0
- ExtraData: [ 0x2, 0x10 ]
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 3
- - Opcode: REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB
- Imm: 0
- ExtraData: [ 0x30 ]
- - Opcode: REBASE_OPCODE_DO_REBASE_IMM_TIMES
- Imm: 3
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 1
- - Opcode: REBASE_OPCODE_DO_REBASE_IMM_TIMES
- Imm: 3
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 1
- - Opcode: REBASE_OPCODE_DO_REBASE_IMM_TIMES
- Imm: 3
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 1
- - Opcode: REBASE_OPCODE_DO_REBASE_IMM_TIMES
- Imm: 3
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 4
- - Opcode: REBASE_OPCODE_DO_REBASE_ULEB_TIMES_SKIPPING_ULEB
- Imm: 0
- ExtraData: [ 0x2, 0x10 ]
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 1
- - Opcode: REBASE_OPCODE_DO_REBASE_IMM_TIMES
- Imm: 3
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 3
- - Opcode: REBASE_OPCODE_DO_REBASE_IMM_TIMES
- Imm: 2
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 5
- - Opcode: REBASE_OPCODE_DO_REBASE_IMM_TIMES
- Imm: 3
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 3
- - Opcode: REBASE_OPCODE_DO_REBASE_IMM_TIMES
- Imm: 2
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 7
- - Opcode: REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB
- Imm: 0
- ExtraData: [ 0x30 ]
- - Opcode: REBASE_OPCODE_DO_REBASE_IMM_TIMES
- Imm: 9
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 1
- - Opcode: REBASE_OPCODE_DO_REBASE_IMM_TIMES
- Imm: 3
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 1
- - Opcode: REBASE_OPCODE_DO_REBASE_IMM_TIMES
- Imm: 3
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 2
- - Opcode: REBASE_OPCODE_DO_REBASE_IMM_TIMES
- Imm: 2
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 3
- - Opcode: REBASE_OPCODE_DO_REBASE_IMM_TIMES
- Imm: 2
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 1
- - Opcode: REBASE_OPCODE_DO_REBASE_ULEB_TIMES_SKIPPING_ULEB
- Imm: 0
- ExtraData: [ 0x2, 0x8 ]
- - Opcode: REBASE_OPCODE_DO_REBASE_IMM_TIMES
- Imm: 9
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 1
- - Opcode: REBASE_OPCODE_DO_REBASE_IMM_TIMES
- Imm: 5
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 2
- - Opcode: REBASE_OPCODE_DO_REBASE_ULEB_TIMES_SKIPPING_ULEB
- Imm: 0
- ExtraData: [ 0x2, 0x28 ]
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 1
- - Opcode: REBASE_OPCODE_DO_REBASE_IMM_TIMES
- Imm: 3
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 3
- - Opcode: REBASE_OPCODE_DO_REBASE_IMM_TIMES
- Imm: 2
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 7
- - Opcode: REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB
- Imm: 0
- ExtraData: [ 0x30 ]
- - Opcode: REBASE_OPCODE_DO_REBASE_IMM_TIMES
- Imm: 3
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 3
- - Opcode: REBASE_OPCODE_DO_REBASE_IMM_TIMES
- Imm: 2
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 5
- - Opcode: REBASE_OPCODE_DO_REBASE_IMM_TIMES
- Imm: 4
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 1
- - Opcode: REBASE_OPCODE_DO_REBASE_ULEB_TIMES_SKIPPING_ULEB
- Imm: 0
- ExtraData: [ 0x2, 0x40 ]
- - Opcode: REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB
- Imm: 0
- ExtraData: [ 0x30 ]
- - Opcode: REBASE_OPCODE_DO_REBASE_IMM_TIMES
- Imm: 3
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 3
- - Opcode: REBASE_OPCODE_DO_REBASE_IMM_TIMES
- Imm: 2
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 5
- - Opcode: REBASE_OPCODE_DO_REBASE_IMM_TIMES
- Imm: 3
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 3
- - Opcode: REBASE_OPCODE_DO_REBASE_IMM_TIMES
- Imm: 2
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 7
- - Opcode: REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB
- Imm: 0
- ExtraData: [ 0x30 ]
- - Opcode: REBASE_OPCODE_DO_REBASE_IMM_TIMES
- Imm: 3
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 3
- - Opcode: REBASE_OPCODE_DO_REBASE_IMM_TIMES
- Imm: 2
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 7
- - Opcode: REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB
- Imm: 0
- ExtraData: [ 0x30 ]
- - Opcode: REBASE_OPCODE_DO_REBASE_IMM_TIMES
- Imm: 3
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 1
- - Opcode: REBASE_OPCODE_DO_REBASE_IMM_TIMES
- Imm: 3
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 2
- - Opcode: REBASE_OPCODE_DO_REBASE_IMM_TIMES
- Imm: 2
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 3
- - Opcode: REBASE_OPCODE_DO_REBASE_IMM_TIMES
- Imm: 2
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 1
- - Opcode: REBASE_OPCODE_DO_REBASE_ULEB_TIMES_SKIPPING_ULEB
- Imm: 0
- ExtraData: [ 0x2, 0x8 ]
- - Opcode: REBASE_OPCODE_DO_REBASE_IMM_TIMES
- Imm: 4
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 3
- - Opcode: REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB
- Imm: 0
- ExtraData: [ 0x18 ]
- - Opcode: REBASE_OPCODE_DO_REBASE_IMM_TIMES
- Imm: 2
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 1
- - Opcode: REBASE_OPCODE_DO_REBASE_ULEB_TIMES_SKIPPING_ULEB
- Imm: 0
- ExtraData: [ 0x2, 0x8 ]
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 1
- - Opcode: REBASE_OPCODE_DO_REBASE_IMM_TIMES
- Imm: 2
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 1
- - Opcode: REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB
- Imm: 0
- ExtraData: [ 0x8 ]
- - Opcode: REBASE_OPCODE_DO_REBASE_IMM_TIMES
- Imm: 2
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 1
- - Opcode: REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB
- Imm: 0
- ExtraData: [ 0x8 ]
- - Opcode: REBASE_OPCODE_DO_REBASE_IMM_TIMES
- Imm: 2
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 4
- - Opcode: REBASE_OPCODE_DO_REBASE_ULEB_TIMES_SKIPPING_ULEB
- Imm: 0
- ExtraData: [ 0x2, 0x8 ]
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 3
- - Opcode: REBASE_OPCODE_DO_REBASE_IMM_TIMES
- Imm: 9
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 3
- - Opcode: REBASE_OPCODE_DO_REBASE_IMM_TIMES
- Imm: 3
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 4
- - Opcode: REBASE_OPCODE_DO_REBASE_IMM_TIMES
- Imm: 3
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 1
- - Opcode: REBASE_OPCODE_DO_REBASE_IMM_TIMES
- Imm: 2
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 1
- - Opcode: REBASE_OPCODE_DO_REBASE_ULEB_TIMES_SKIPPING_ULEB
- Imm: 0
- ExtraData: [ 0x2, 0x8 ]
- - Opcode: REBASE_OPCODE_DO_REBASE_IMM_TIMES
- Imm: 3
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 1
- - Opcode: REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB
- Imm: 0
- ExtraData: [ 0x38 ]
- - Opcode: REBASE_OPCODE_DO_REBASE_IMM_TIMES
- Imm: 2
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 3
- - Opcode: REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB
- Imm: 0
- ExtraData: [ 0x20 ]
- - Opcode: REBASE_OPCODE_DO_REBASE_IMM_TIMES
- Imm: 2
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 3
- - Opcode: REBASE_OPCODE_DO_REBASE_ULEB_TIMES_SKIPPING_ULEB
- Imm: 0
- ExtraData: [ 0x2, 0x8 ]
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 1
- - Opcode: REBASE_OPCODE_DO_REBASE_IMM_TIMES
- Imm: 3
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 2
- - Opcode: REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB
- Imm: 0
- ExtraData: [ 0x20 ]
- - Opcode: REBASE_OPCODE_DO_REBASE_IMM_TIMES
- Imm: 2
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 3
- - Opcode: REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB
- Imm: 0
- ExtraData: [ 0x20 ]
- - Opcode: REBASE_OPCODE_DO_REBASE_IMM_TIMES
- Imm: 2
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 3
- - Opcode: REBASE_OPCODE_DO_REBASE_IMM_TIMES
- Imm: 2
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 3
- - Opcode: REBASE_OPCODE_DO_REBASE_IMM_TIMES
- Imm: 3
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 2
- - Opcode: REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB
- Imm: 0
- ExtraData: [ 0x20 ]
- - Opcode: REBASE_OPCODE_DO_REBASE_IMM_TIMES
- Imm: 2
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 3
- - Opcode: REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB
- Imm: 0
- ExtraData: [ 0x20 ]
- - Opcode: REBASE_OPCODE_DO_REBASE_IMM_TIMES
- Imm: 2
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 3
- - Opcode: REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB
- Imm: 0
- ExtraData: [ 0x20 ]
- - Opcode: REBASE_OPCODE_DO_REBASE_IMM_TIMES
- Imm: 2
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 3
- - Opcode: REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB
- Imm: 0
- ExtraData: [ 0x20 ]
- - Opcode: REBASE_OPCODE_DO_REBASE_IMM_TIMES
- Imm: 2
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 3
- - Opcode: REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB
- Imm: 0
- ExtraData: [ 0x20 ]
- - Opcode: REBASE_OPCODE_DO_REBASE_IMM_TIMES
- Imm: 2
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 3
- - Opcode: REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB
- Imm: 0
- ExtraData: [ 0x20 ]
- - Opcode: REBASE_OPCODE_DO_REBASE_IMM_TIMES
- Imm: 2
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 3
- - Opcode: REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB
- Imm: 0
- ExtraData: [ 0x20 ]
- - Opcode: REBASE_OPCODE_DO_REBASE_IMM_TIMES
- Imm: 2
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 3
- - Opcode: REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB
- Imm: 0
- ExtraData: [ 0x20 ]
- - Opcode: REBASE_OPCODE_DO_REBASE_IMM_TIMES
- Imm: 2
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 3
- - Opcode: REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB
- Imm: 0
- ExtraData: [ 0x20 ]
- - Opcode: REBASE_OPCODE_DO_REBASE_IMM_TIMES
- Imm: 2
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 3
- - Opcode: REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB
- Imm: 0
- ExtraData: [ 0x20 ]
- - Opcode: REBASE_OPCODE_DO_REBASE_IMM_TIMES
- Imm: 2
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 3
- - Opcode: REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB
- Imm: 0
- ExtraData: [ 0x20 ]
- - Opcode: REBASE_OPCODE_DO_REBASE_IMM_TIMES
- Imm: 2
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 3
- - Opcode: REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB
- Imm: 0
- ExtraData: [ 0x20 ]
- - Opcode: REBASE_OPCODE_DO_REBASE_IMM_TIMES
- Imm: 2
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 3
- - Opcode: REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB
- Imm: 0
- ExtraData: [ 0x20 ]
- - Opcode: REBASE_OPCODE_DO_REBASE_IMM_TIMES
- Imm: 2
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 3
- - Opcode: REBASE_OPCODE_DO_REBASE_IMM_TIMES
- Imm: 2
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 3
- - Opcode: REBASE_OPCODE_DO_REBASE_IMM_TIMES
- Imm: 3
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 2
- - Opcode: REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB
- Imm: 0
- ExtraData: [ 0x98 ]
- - Opcode: REBASE_OPCODE_DO_REBASE_ULEB_TIMES_SKIPPING_ULEB
- Imm: 0
- ExtraData: [ 0x2, 0x8 ]
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 4
- - Opcode: REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB
- Imm: 0
- ExtraData: [ 0x18 ]
- - Opcode: REBASE_OPCODE_DO_REBASE_IMM_TIMES
- Imm: 3
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 5
- - Opcode: REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB
- Imm: 0
- ExtraData: [ 0x18 ]
- - Opcode: REBASE_OPCODE_DO_REBASE_ULEB_TIMES_SKIPPING_ULEB
- Imm: 0
- ExtraData: [ 0x2, 0x8 ]
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 4
- - Opcode: REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB
- Imm: 0
- ExtraData: [ 0x18 ]
- - Opcode: REBASE_OPCODE_DO_REBASE_ULEB_TIMES_SKIPPING_ULEB
- Imm: 0
- ExtraData: [ 0x2, 0x8 ]
- - Opcode: REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- Imm: 4
- - Opcode: REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB
- Imm: 0
- ExtraData: [ 0x18 ]
- - Opcode: REBASE_OPCODE_DO_REBASE_ULEB_TIMES
- Imm: 0
- ExtraData: [ 0x1C ]
- - Opcode: REBASE_OPCODE_DONE
- Imm: 0
- BindOpcodes:
- - Opcode: BIND_OPCODE_SET_SYMBOL_TRAILING_FLAGS_IMM
- Imm: 0
- Symbol: _objc_ehtype_vtable
- - Opcode: BIND_OPCODE_SET_TYPE_IMM
- Imm: 1
- Symbol: ''
- - Opcode: BIND_OPCODE_SET_DYLIB_ORDINAL_IMM
- Imm: 2
- Symbol: ''
- - Opcode: BIND_OPCODE_SET_SEGMENT_AND_OFFSET_ULEB
- Imm: 1
- ULEBExtraData: [ 0x120 ]
- Symbol: ''
- - Opcode: BIND_OPCODE_SET_ADDEND_SLEB
- Imm: 0
- SLEBExtraData: [ 16 ]
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_ADD_ADDR_ULEB
- Imm: 0
- ULEBExtraData: [ 0xA0 ]
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_ADD_ADDR_ULEB
- Imm: 0
- ULEBExtraData: [ 0xA0 ]
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_ADD_ADDR_ULEB
- Imm: 0
- ULEBExtraData: [ 0xA0 ]
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_SET_SYMBOL_TRAILING_FLAGS_IMM
- Imm: 0
- Symbol: '_OBJC_CLASS_$_NSManagedObject'
- - Opcode: BIND_OPCODE_SET_TYPE_IMM
- Imm: 1
- Symbol: ''
- - Opcode: BIND_OPCODE_SET_DYLIB_ORDINAL_IMM
- Imm: 3
- Symbol: ''
- - Opcode: BIND_OPCODE_ADD_ADDR_ULEB
- Imm: 0
- ULEBExtraData: [ 0xA78 ]
- Symbol: ''
- - Opcode: BIND_OPCODE_SET_ADDEND_SLEB
- Imm: 0
- SLEBExtraData: [ 0 ]
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_ADD_ADDR_ULEB
- Imm: 0
- ULEBExtraData: [ 0xA48 ]
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_SET_SYMBOL_TRAILING_FLAGS_IMM
- Imm: 0
- Symbol: '_OBJC_METACLASS_$_NSObject'
- - Opcode: BIND_OPCODE_SET_TYPE_IMM
- Imm: 1
- Symbol: ''
- - Opcode: BIND_OPCODE_SET_DYLIB_ORDINAL_IMM
- Imm: 2
- Symbol: ''
- - Opcode: BIND_OPCODE_ADD_ADDR_ULEB
- Imm: 0
- ULEBExtraData: [ 0xFFFFFFFFFFFFFB68 ]
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_ADD_ADDR_ULEB
- Imm: 0
- ULEBExtraData: [ 0x40 ]
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_ADD_ADDR_ULEB
- Imm: 0
- ULEBExtraData: [ 0x40 ]
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_ADD_ADDR_ULEB
- Imm: 0
- ULEBExtraData: [ 0x48 ]
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_ADD_ADDR_ULEB
- Imm: 0
- ULEBExtraData: [ 0x40 ]
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_ADD_ADDR_ULEB
- Imm: 0
- ULEBExtraData: [ 0x90 ]
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_ADD_ADDR_ULEB
- Imm: 0
- ULEBExtraData: [ 0x40 ]
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_ADD_ADDR_ULEB
- Imm: 0
- ULEBExtraData: [ 0x40 ]
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_ADD_ADDR_ULEB
- Imm: 0
- ULEBExtraData: [ 0x40 ]
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_ADD_ADDR_ULEB
- Imm: 0
- ULEBExtraData: [ 0x40 ]
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_ADD_ADDR_ULEB
- Imm: 0
- ULEBExtraData: [ 0x40 ]
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_ADD_ADDR_ULEB
- Imm: 0
- ULEBExtraData: [ 0x40 ]
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_ADD_ADDR_ULEB
- Imm: 0
- ULEBExtraData: [ 0x40 ]
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_ADD_ADDR_ULEB
- Imm: 0
- ULEBExtraData: [ 0x40 ]
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_ADD_ADDR_ULEB
- Imm: 0
- ULEBExtraData: [ 0x48 ]
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_ADD_ADDR_ULEB
- Imm: 0
- ULEBExtraData: [ 0x40 ]
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_ADD_ADDR_ULEB
- Imm: 0
- ULEBExtraData: [ 0x40 ]
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_ADD_ADDR_ULEB
- Imm: 0
- ULEBExtraData: [ 0x40 ]
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_SET_SYMBOL_TRAILING_FLAGS_IMM
- Imm: 0
- Symbol: __objc_empty_cache
- - Opcode: BIND_OPCODE_SET_TYPE_IMM
- Imm: 1
- Symbol: ''
- - Opcode: BIND_OPCODE_ADD_ADDR_ULEB
- Imm: 0
- ULEBExtraData: [ 0xFFFFFFFFFFFFFA60 ]
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_ADD_ADDR_ULEB
- Imm: 0
- ULEBExtraData: [ 0x20 ]
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_ADD_ADDR_ULEB
- Imm: 0
- ULEBExtraData: [ 0x20 ]
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_ADD_ADDR_ULEB
- Imm: 0
- ULEBExtraData: [ 0x20 ]
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_ADD_ADDR_ULEB
- Imm: 0
- ULEBExtraData: [ 0x20 ]
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_ADD_ADDR_ULEB
- Imm: 0
- ULEBExtraData: [ 0x20 ]
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_ADD_ADDR_ULEB
- Imm: 0
- ULEBExtraData: [ 0x20 ]
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_ADD_ADDR_ULEB
- Imm: 0
- ULEBExtraData: [ 0x20 ]
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_ADD_ADDR_ULEB
- Imm: 0
- ULEBExtraData: [ 0x20 ]
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_ADD_ADDR_ULEB
- Imm: 0
- ULEBExtraData: [ 0x20 ]
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_ADD_ADDR_ULEB
- Imm: 0
- ULEBExtraData: [ 0x20 ]
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_ADD_ADDR_ULEB
- Imm: 0
- ULEBExtraData: [ 0x20 ]
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_ADD_ADDR_ULEB
- Imm: 0
- ULEBExtraData: [ 0x20 ]
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_ADD_ADDR_ULEB
- Imm: 0
- ULEBExtraData: [ 0x20 ]
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_ADD_ADDR_ULEB
- Imm: 0
- ULEBExtraData: [ 0x20 ]
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_ADD_ADDR_ULEB
- Imm: 0
- ULEBExtraData: [ 0x20 ]
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_ADD_ADDR_ULEB
- Imm: 0
- ULEBExtraData: [ 0x20 ]
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_ADD_ADDR_ULEB
- Imm: 0
- ULEBExtraData: [ 0x20 ]
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_ADD_ADDR_ULEB
- Imm: 0
- ULEBExtraData: [ 0x20 ]
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_ADD_ADDR_ULEB
- Imm: 0
- ULEBExtraData: [ 0x20 ]
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_ADD_ADDR_ULEB
- Imm: 0
- ULEBExtraData: [ 0x20 ]
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_ADD_ADDR_ULEB
- Imm: 0
- ULEBExtraData: [ 0x20 ]
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_ADD_ADDR_ULEB
- Imm: 0
- ULEBExtraData: [ 0x20 ]
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_ADD_ADDR_ULEB
- Imm: 0
- ULEBExtraData: [ 0x20 ]
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_ADD_ADDR_ULEB
- Imm: 0
- ULEBExtraData: [ 0x20 ]
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_ADD_ADDR_ULEB
- Imm: 0
- ULEBExtraData: [ 0x20 ]
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_ADD_ADDR_ULEB
- Imm: 0
- ULEBExtraData: [ 0x20 ]
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_ADD_ADDR_ULEB
- Imm: 0
- ULEBExtraData: [ 0x20 ]
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_ADD_ADDR_ULEB
- Imm: 0
- ULEBExtraData: [ 0x20 ]
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_ADD_ADDR_ULEB
- Imm: 0
- ULEBExtraData: [ 0x20 ]
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_ADD_ADDR_ULEB
- Imm: 0
- ULEBExtraData: [ 0x20 ]
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_ADD_ADDR_ULEB
- Imm: 0
- ULEBExtraData: [ 0x20 ]
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_ADD_ADDR_ULEB
- Imm: 0
- ULEBExtraData: [ 0x20 ]
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_ADD_ADDR_ULEB
- Imm: 0
- ULEBExtraData: [ 0x20 ]
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_ADD_ADDR_ULEB
- Imm: 0
- ULEBExtraData: [ 0x20 ]
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_ADD_ADDR_ULEB
- Imm: 0
- ULEBExtraData: [ 0x20 ]
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_ADD_ADDR_ULEB
- Imm: 0
- ULEBExtraData: [ 0x20 ]
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_ADD_ADDR_ULEB
- Imm: 0
- ULEBExtraData: [ 0x20 ]
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_ADD_ADDR_ULEB
- Imm: 0
- ULEBExtraData: [ 0x20 ]
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_ADD_ADDR_ULEB
- Imm: 0
- ULEBExtraData: [ 0x20 ]
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_SET_SYMBOL_TRAILING_FLAGS_IMM
- Imm: 0
- Symbol: '_OBJC_CLASS_$_NSObject'
- - Opcode: BIND_OPCODE_SET_TYPE_IMM
- Imm: 1
- Symbol: ''
- - Opcode: BIND_OPCODE_ADD_ADDR_ULEB
- Imm: 0
- ULEBExtraData: [ 0xFFFFFFFFFFFFFA00 ]
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_ADD_ADDR_ULEB
- Imm: 0
- ULEBExtraData: [ 0x48 ]
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_ADD_ADDR_ULEB
- Imm: 0
- ULEBExtraData: [ 0x98 ]
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_ADD_ADDR_ULEB
- Imm: 0
- ULEBExtraData: [ 0x48 ]
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_ADD_ADDR_ULEB
- Imm: 0
- ULEBExtraData: [ 0x98 ]
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_ADD_ADDR_ULEB
- Imm: 0
- ULEBExtraData: [ 0x48 ]
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_ADD_ADDR_ULEB
- Imm: 0
- ULEBExtraData: [ 0x48 ]
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_ADD_ADDR_ULEB
- Imm: 0
- ULEBExtraData: [ 0x48 ]
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_ADD_ADDR_ULEB
- Imm: 0
- ULEBExtraData: [ 0x48 ]
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_ADD_ADDR_ULEB
- Imm: 0
- ULEBExtraData: [ 0x48 ]
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_ADD_ADDR_ULEB
- Imm: 0
- ULEBExtraData: [ 0x48 ]
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_ADD_ADDR_ULEB
- Imm: 0
- ULEBExtraData: [ 0x48 ]
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_ADD_ADDR_ULEB
- Imm: 0
- ULEBExtraData: [ 0x98 ]
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_ADD_ADDR_ULEB
- Imm: 0
- ULEBExtraData: [ 0x48 ]
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_ADD_ADDR_ULEB
- Imm: 0
- ULEBExtraData: [ 0x48 ]
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_ADD_ADDR_ULEB
- Imm: 0
- ULEBExtraData: [ 0x48 ]
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_SET_SYMBOL_TRAILING_FLAGS_IMM
- Imm: 0
- Symbol: '_OBJC_METACLASS_$_NSManagedObject'
- - Opcode: BIND_OPCODE_SET_TYPE_IMM
- Imm: 1
- Symbol: ''
- - Opcode: BIND_OPCODE_SET_DYLIB_ORDINAL_IMM
- Imm: 3
- Symbol: ''
- - Opcode: BIND_OPCODE_ADD_ADDR_ULEB
- Imm: 0
- ULEBExtraData: [ 0xFFFFFFFFFFFFFE90 ]
- Symbol: ''
- - Opcode: BIND_OPCODE_DO_BIND
- Imm: 0
- Symbol: ''
- - Opcode: BIND_OPCODE_DONE
- Imm: 0
- Symbol: ''
- ExportTrie:
- TerminalSize: 0
- NodeOffset: 0
- Name: ''
- Flags: 0x0
- Address: 0x0
- Other: 0x0
- ImportName: ''
- Children:
- - TerminalSize: 0
- NodeOffset: 5
- Name: _
- Flags: 0x0
- Address: 0x0
- Other: 0x0
- ImportName: ''
- Children:
- - TerminalSize: 0
- NodeOffset: 41
- Name: p
- Flags: 0x0
- Address: 0x0
- Other: 0x0
- ImportName: ''
- Children:
- - TerminalSize: 4
- NodeOffset: 86
- Name: rivateGlobalVariable
- Flags: 0x0
- Address: 0x4CA0
- Other: 0x0
- ImportName: ''
- - TerminalSize: 4
- NodeOffset: 92
- Name: ublicGlobalVariable
- Flags: 0x0
- Address: 0x4CA4
- Other: 0x0
- ImportName: ''
- - TerminalSize: 0
- NodeOffset: 98
- Name: extraGlobalAPI
- Flags: 0x0
- Address: 0x0
- Other: 0x0
- ImportName: ''
- Children:
- - TerminalSize: 4
- NodeOffset: 106
- Name: '1'
- Flags: 0x0
- Address: 0x4C98
- Other: 0x0
- ImportName: ''
- - TerminalSize: 4
- NodeOffset: 112
- Name: '2'
- Flags: 0x0
- Address: 0x4C9C
- Other: 0x0
- ImportName: ''
- - TerminalSize: 0
- NodeOffset: 118
- Name: weakP
- Flags: 0x0
- Address: 0x0
- Other: 0x0
- ImportName: ''
- Children:
- - TerminalSize: 4
- NodeOffset: 165
- Name: rivateGlobalVariable
- Flags: 0x4
- Address: 0x4BAC
- Other: 0x0
- ImportName: ''
- - TerminalSize: 4
- NodeOffset: 171
- Name: ublicGlobalVariable
- Flags: 0x4
- Address: 0x4BA8
- Other: 0x0
- ImportName: ''
- - TerminalSize: 0
- NodeOffset: 177
- Name: OBJC_
- Flags: 0x0
- Address: 0x0
- Other: 0x0
- ImportName: ''
- Children:
- - TerminalSize: 0
- NodeOffset: 232
- Name: 'IVAR_$_Basic'
- Flags: 0x0
- Address: 0x0
- Other: 0x0
- ImportName: ''
- Children:
- - TerminalSize: 4
- NodeOffset: 248
- Name: 6.ivar1
- Flags: 0x0
- Address: 0x4A10
- Other: 0x0
- ImportName: ''
- - TerminalSize: 0
- NodeOffset: 254
- Name: '4'
- Flags: 0x0
- Address: 0x0
- Other: 0x0
- ImportName: ''
- Children:
- - TerminalSize: 0
- NodeOffset: 274
- Name: .ivar
- Flags: 0x0
- Address: 0x0
- Other: 0x0
- ImportName: ''
- Children:
- - TerminalSize: 4
- NodeOffset: 284
- Name: '2'
- Flags: 0x0
- Address: 0x49B8
- Other: 0x0
- ImportName: ''
- - TerminalSize: 4
- NodeOffset: 290
- Name: '1'
- Flags: 0x0
- Address: 0x49B0
- Other: 0x0
- ImportName: ''
- - TerminalSize: 0
- NodeOffset: 296
- Name: _2.ivar
- Flags: 0x0
- Address: 0x0
- Other: 0x0
- ImportName: ''
- Children:
- - TerminalSize: 4
- NodeOffset: 306
- Name: '1'
- Flags: 0x0
- Address: 0x4A08
- Other: 0x0
- ImportName: ''
- - TerminalSize: 4
- NodeOffset: 312
- Name: '2'
- Flags: 0x0
- Address: 0x4A00
- Other: 0x0
- ImportName: ''
- - TerminalSize: 0
- NodeOffset: 318
- Name: 'METACLASS_$_'
- Flags: 0x0
- Address: 0x0
- Other: 0x0
- ImportName: ''
- Children:
- - TerminalSize: 4
- NodeOffset: 369
- Name: FooClass
- Flags: 0x0
- Address: 0x4970
- Other: 0x0
- ImportName: ''
- - TerminalSize: 4
- NodeOffset: 375
- Name: ExternalManagedObject
- Flags: 0x0
- Address: 0x47B8
- Other: 0x0
- ImportName: ''
- - TerminalSize: 0
- NodeOffset: 381
- Name: S
- Flags: 0x0
- Address: 0x0
- Other: 0x0
- ImportName: ''
- Children:
- - TerminalSize: 4
- NodeOffset: 401
- Name: imple
- Flags: 0x0
- Address: 0x4358
- Other: 0x0
- ImportName: ''
- Children:
- - TerminalSize: 0
- NodeOffset: 418
- Name: Internal
- Flags: 0x0
- Address: 0x0
- Other: 0x0
- ImportName: ''
- Children:
- - TerminalSize: 4
- NodeOffset: 432
- Name: SPI
- Flags: 0x0
- Address: 0x4498
- Other: 0x0
- ImportName: ''
- - TerminalSize: 4
- NodeOffset: 438
- Name: API
- Flags: 0x0
- Address: 0x4448
- Other: 0x0
- ImportName: ''
- - TerminalSize: 4
- NodeOffset: 444
- Name: ubClass
- Flags: 0x0
- Address: 0x43F8
- Other: 0x0
- ImportName: ''
- - TerminalSize: 0
- NodeOffset: 450
- Name: Bas
- Flags: 0x0
- Address: 0x0
- Other: 0x0
- ImportName: ''
- Children:
- - TerminalSize: 4
- NodeOffset: 461
- Name: e
- Flags: 0x0
- Address: 0x43A8
- Other: 0x0
- ImportName: ''
- - TerminalSize: 0
- NodeOffset: 467
- Name: ic
- Flags: 0x0
- Address: 0x0
- Other: 0x0
- ImportName: ''
- Children:
- - TerminalSize: 4
- NodeOffset: 501
- Name: '2'
- Flags: 0x0
- Address: 0x4538
- Other: 0x0
- ImportName: ''
- - TerminalSize: 4
- NodeOffset: 507
- Name: '3'
- Flags: 0x0
- Address: 0x4588
- Other: 0x0
- ImportName: ''
- - TerminalSize: 4
- NodeOffset: 513
- Name: '5'
- Flags: 0x0
- Address: 0x46C8
- Other: 0x0
- ImportName: ''
- - TerminalSize: 4
- NodeOffset: 519
- Name: '4'
- Flags: 0x0
- Address: 0x45D8
- Other: 0x0
- ImportName: ''
- Children:
- - TerminalSize: 4
- NodeOffset: 530
- Name: _2
- Flags: 0x0
- Address: 0x4678
- Other: 0x0
- ImportName: ''
- - TerminalSize: 4
- NodeOffset: 536
- Name: '9'
- Flags: 0x0
- Address: 0x48F8
- Other: 0x0
- ImportName: ''
- - TerminalSize: 4
- NodeOffset: 542
- Name: '8'
- Flags: 0x0
- Address: 0x4858
- Other: 0x0
- ImportName: ''
- - TerminalSize: 4
- NodeOffset: 548
- Name: '6'
- Flags: 0x0
- Address: 0x4718
- Other: 0x0
- ImportName: ''
- - TerminalSize: 4
- NodeOffset: 554
- Name: '1'
- Flags: 0x0
- Address: 0x4510
- Other: 0x0
- ImportName: ''
- - TerminalSize: 4
- NodeOffset: 560
- Name: A
- Flags: 0x0
- Address: 0x48A8
- Other: 0x0
- ImportName: ''
- - TerminalSize: 0
- NodeOffset: 566
- Name: 'EHTYPE_$_'
- Flags: 0x0
- Address: 0x0
- Other: 0x0
- ImportName: ''
- Children:
- - TerminalSize: 3
- NodeOffset: 579
- Name: Base
- Flags: 0x0
- Address: 0x3120
- Other: 0x0
- ImportName: ''
- - TerminalSize: 0
- NodeOffset: 584
- Name: S
- Flags: 0x0
- Address: 0x0
- Other: 0x0
- ImportName: ''
- Children:
- - TerminalSize: 3
- NodeOffset: 612
- Name: ubClass
- Flags: 0x0
- Address: 0x31C8
- Other: 0x0
- ImportName: ''
- - TerminalSize: 0
- NodeOffset: 617
- Name: impleInternal
- Flags: 0x0
- Address: 0x0
- Other: 0x0
- ImportName: ''
- Children:
- - TerminalSize: 3
- NodeOffset: 631
- Name: SPI
- Flags: 0x0
- Address: 0x3318
- Other: 0x0
- ImportName: ''
- - TerminalSize: 3
- NodeOffset: 636
- Name: API
- Flags: 0x0
- Address: 0x3270
- Other: 0x0
- ImportName: ''
- - TerminalSize: 0
- NodeOffset: 641
- Name: 'CLASS_$_'
- Flags: 0x0
- Address: 0x0
- Other: 0x0
- ImportName: ''
- Children:
- - TerminalSize: 4
- NodeOffset: 692
- Name: A
- Flags: 0x0
- Address: 0x48D0
- Other: 0x0
- ImportName: ''
- - TerminalSize: 4
- NodeOffset: 698
- Name: ExternalManagedObject
- Flags: 0x0
- Address: 0x47E0
- Other: 0x0
- ImportName: ''
- - TerminalSize: 4
- NodeOffset: 704
- Name: FooClass
- Flags: 0x0
- Address: 0x4948
- Other: 0x0
- ImportName: ''
- - TerminalSize: 0
- NodeOffset: 710
- Name: S
- Flags: 0x0
- Address: 0x0
- Other: 0x0
- ImportName: ''
- Children:
- - TerminalSize: 4
- NodeOffset: 730
- Name: ubClass
- Flags: 0x0
- Address: 0x4420
- Other: 0x0
- ImportName: ''
- - TerminalSize: 4
- NodeOffset: 736
- Name: imple
- Flags: 0x0
- Address: 0x4380
- Other: 0x0
- ImportName: ''
- Children:
- - TerminalSize: 0
- NodeOffset: 753
- Name: Internal
- Flags: 0x0
- Address: 0x0
- Other: 0x0
- ImportName: ''
- Children:
- - TerminalSize: 4
- NodeOffset: 767
- Name: API
- Flags: 0x0
- Address: 0x4470
- Other: 0x0
- ImportName: ''
- - TerminalSize: 4
- NodeOffset: 773
- Name: SPI
- Flags: 0x0
- Address: 0x44C0
- Other: 0x0
- ImportName: ''
- - TerminalSize: 0
- NodeOffset: 779
- Name: Bas
- Flags: 0x0
- Address: 0x0
- Other: 0x0
- ImportName: ''
- Children:
- - TerminalSize: 4
- NodeOffset: 790
- Name: e
- Flags: 0x0
- Address: 0x43D0
- Other: 0x0
- ImportName: ''
- - TerminalSize: 0
- NodeOffset: 796
- Name: ic
- Flags: 0x0
- Address: 0x0
- Other: 0x0
- ImportName: ''
- Children:
- - TerminalSize: 4
- NodeOffset: 830
- Name: '1'
- Flags: 0x0
- Address: 0x44E8
- Other: 0x0
- ImportName: ''
- - TerminalSize: 4
- NodeOffset: 836
- Name: '3'
- Flags: 0x0
- Address: 0x45B0
- Other: 0x0
- ImportName: ''
- - TerminalSize: 4
- NodeOffset: 842
- Name: '4'
- Flags: 0x0
- Address: 0x4600
- Other: 0x0
- ImportName: ''
- Children:
- - TerminalSize: 4
- NodeOffset: 853
- Name: _2
- Flags: 0x0
- Address: 0x46A0
- Other: 0x0
- ImportName: ''
- - TerminalSize: 4
- NodeOffset: 859
- Name: '2'
- Flags: 0x0
- Address: 0x4560
- Other: 0x0
- ImportName: ''
- - TerminalSize: 4
- NodeOffset: 865
- Name: '8'
- Flags: 0x0
- Address: 0x4880
- Other: 0x0
- ImportName: ''
- - TerminalSize: 4
- NodeOffset: 871
- Name: '9'
- Flags: 0x0
- Address: 0x4920
- Other: 0x0
- ImportName: ''
- - TerminalSize: 4
- NodeOffset: 877
- Name: '6'
- Flags: 0x0
- Address: 0x4740
- Other: 0x0
- ImportName: ''
- - TerminalSize: 4
- NodeOffset: 883
- Name: '5'
- Flags: 0x0
- Address: 0x46F0
- Other: 0x0
- ImportName: ''
- NameList:
- - n_strx: 2
- n_type: 0xE
- n_sect: 1
- n_desc: 0
- n_value: 7104
- - n_strx: 22
- n_type: 0xE
- n_sect: 1
- n_desc: 0
- n_value: 7114
- - n_strx: 46
- n_type: 0xE
- n_sect: 1
- n_desc: 0
- n_value: 7123
- - n_strx: 66
- n_type: 0xE
- n_sect: 1
- n_desc: 0
- n_value: 7133
- - n_strx: 88
- n_type: 0xE
- n_sect: 1
- n_desc: 0
- n_value: 7143
- - n_strx: 112
- n_type: 0xE
- n_sect: 1
- n_desc: 0
- n_value: 7152
- - n_strx: 135
- n_type: 0xE
- n_sect: 1
- n_desc: 0
- n_value: 7158
- - n_strx: 162
- n_type: 0xE
- n_sect: 1
- n_desc: 0
- n_value: 7164
- - n_strx: 204
- n_type: 0xE
- n_sect: 1
- n_desc: 0
- n_value: 7170
- - n_strx: 224
- n_type: 0xE
- n_sect: 1
- n_desc: 0
- n_value: 7180
- - n_strx: 248
- n_type: 0xE
- n_sect: 1
- n_desc: 0
- n_value: 7189
- - n_strx: 273
- n_type: 0xE
- n_sect: 1
- n_desc: 0
- n_value: 7200
- - n_strx: 302
- n_type: 0xE
- n_sect: 1
- n_desc: 0
- n_value: 7206
- - n_strx: 347
- n_type: 0xE
- n_sect: 1
- n_desc: 0
- n_value: 7212
- - n_strx: 395
- n_type: 0xE
- n_sect: 1
- n_desc: 0
- n_value: 7218
- - n_strx: 424
- n_type: 0xE
- n_sect: 1
- n_desc: 0
- n_value: 7224
- - n_strx: 466
- n_type: 0xE
- n_sect: 1
- n_desc: 0
- n_value: 7232
- - n_strx: 488
- n_type: 0xE
- n_sect: 1
- n_desc: 0
- n_value: 7238
- - n_strx: 510
- n_type: 0xE
- n_sect: 1
- n_desc: 0
- n_value: 7244
- - n_strx: 523
- n_type: 0xE
- n_sect: 1
- n_desc: 0
- n_value: 7250
- - n_strx: 543
- n_type: 0xE
- n_sect: 1
- n_desc: 0
- n_value: 7260
- - n_strx: 566
- n_type: 0xE
- n_sect: 1
- n_desc: 0
- n_value: 7266
- - n_strx: 593
- n_type: 0xE
- n_sect: 1
- n_desc: 0
- n_value: 7272
- - n_strx: 615
- n_type: 0xE
- n_sect: 1
- n_desc: 0
- n_value: 7278
- - n_strx: 658
- n_type: 0xE
- n_sect: 6
- n_desc: 0
- n_value: 12288
- - n_strx: 687
- n_type: 0xE
- n_sect: 6
- n_desc: 0
- n_value: 12360
- - n_strx: 712
- n_type: 0xE
- n_sect: 6
- n_desc: 0
- n_value: 12432
- - n_strx: 739
- n_type: 0xE
- n_sect: 6
- n_desc: 0
- n_value: 12504
- - n_strx: 762
- n_type: 0xE
- n_sect: 6
- n_desc: 0
- n_value: 12600
- - n_strx: 793
- n_type: 0xE
- n_sect: 6
- n_desc: 0
- n_value: 12672
- - n_strx: 820
- n_type: 0xE
- n_sect: 6
- n_desc: 0
- n_value: 12768
- - n_strx: 860
- n_type: 0xE
- n_sect: 6
- n_desc: 0
- n_value: 12840
- - n_strx: 896
- n_type: 0xE
- n_sect: 6
- n_desc: 0
- n_value: 12936
- - n_strx: 936
- n_type: 0xE
- n_sect: 6
- n_desc: 0
- n_value: 13008
- - n_strx: 972
- n_type: 0xE
- n_sect: 6
- n_desc: 0
- n_value: 13176
- - n_strx: 997
- n_type: 0xE
- n_sect: 6
- n_desc: 0
- n_value: 13104
- - n_strx: 1026
- n_type: 0xE
- n_sect: 6
- n_desc: 0
- n_value: 13248
- - n_strx: 1055
- n_type: 0xE
- n_sect: 6
- n_desc: 0
- n_value: 13320
- - n_strx: 1080
- n_type: 0xE
- n_sect: 6
- n_desc: 0
- n_value: 13392
- - n_strx: 1109
- n_type: 0xE
- n_sect: 6
- n_desc: 0
- n_value: 13464
- - n_strx: 1142
- n_type: 0xE
- n_sect: 6
- n_desc: 0
- n_value: 13592
- - n_strx: 1177
- n_type: 0xE
- n_sect: 6
- n_desc: 0
- n_value: 13696
- - n_strx: 1203
- n_type: 0xE
- n_sect: 6
- n_desc: 0
- n_value: 13768
- - n_strx: 1228
- n_type: 0xE
- n_sect: 6
- n_desc: 0
- n_value: 13840
- - n_strx: 1257
- n_type: 0xE
- n_sect: 6
- n_desc: 0
- n_value: 13912
- - n_strx: 1292
- n_type: 0xE
- n_sect: 6
- n_desc: 0
- n_value: 14048
- - n_strx: 1317
- n_type: 0xE
- n_sect: 6
- n_desc: 0
- n_value: 14120
- - n_strx: 1348
- n_type: 0xE
- n_sect: 6
- n_desc: 0
- n_value: 14192
- - n_strx: 1385
- n_type: 0xE
- n_sect: 6
- n_desc: 0
- n_value: 14328
- - n_strx: 1412
- n_type: 0xE
- n_sect: 6
- n_desc: 0
- n_value: 14400
- - n_strx: 1443
- n_type: 0xE
- n_sect: 6
- n_desc: 0
- n_value: 14472
- - n_strx: 1480
- n_type: 0xE
- n_sect: 6
- n_desc: 0
- n_value: 14608
- - n_strx: 1507
- n_type: 0xE
- n_sect: 6
- n_desc: 0
- n_value: 14680
- - n_strx: 1537
- n_type: 0xE
- n_sect: 6
- n_desc: 0
- n_value: 14712
- - n_strx: 1566
- n_type: 0xE
- n_sect: 6
- n_desc: 0
- n_value: 14784
- - n_strx: 1599
- n_type: 0xE
- n_sect: 6
- n_desc: 0
- n_value: 14816
- - n_strx: 1624
- n_type: 0xE
- n_sect: 6
- n_desc: 0
- n_value: 14888
- - n_strx: 1653
- n_type: 0xE
- n_sect: 6
- n_desc: 0
- n_value: 14960
- - n_strx: 1686
- n_type: 0xE
- n_sect: 6
- n_desc: 0
- n_value: 15040
- - n_strx: 1721
- n_type: 0xE
- n_sect: 6
- n_desc: 0
- n_value: 15112
- - n_strx: 1747
- n_type: 0xE
- n_sect: 6
- n_desc: 0
- n_value: 15136
- - n_strx: 1772
- n_type: 0xE
- n_sect: 6
- n_desc: 0
- n_value: 15208
- - n_strx: 1820
- n_type: 0xE
- n_sect: 6
- n_desc: 0
- n_value: 15288
- - n_strx: 1852
- n_type: 0xE
- n_sect: 6
- n_desc: 0
- n_value: 15312
- - n_strx: 1883
- n_type: 0xE
- n_sect: 6
- n_desc: 0
- n_value: 15376
- - n_strx: 1912
- n_type: 0xE
- n_sect: 6
- n_desc: 0
- n_value: 15448
- - n_strx: 1945
- n_type: 0xE
- n_sect: 6
- n_desc: 0
- n_value: 15480
- - n_strx: 1970
- n_type: 0xE
- n_sect: 6
- n_desc: 0
- n_value: 15552
- - n_strx: 2014
- n_type: 0xE
- n_sect: 6
- n_desc: 0
- n_value: 15624
- - n_strx: 2062
- n_type: 0xE
- n_sect: 6
- n_desc: 0
- n_value: 15656
- - n_strx: 2102
- n_type: 0xE
- n_sect: 6
- n_desc: 0
- n_value: 15728
- - n_strx: 2162
- n_type: 0xE
- n_sect: 6
- n_desc: 0
- n_value: 15760
- - n_strx: 2205
- n_type: 0xE
- n_sect: 6
- n_desc: 0
- n_value: 15824
- - n_strx: 2239
- n_type: 0xE
- n_sect: 6
- n_desc: 0
- n_value: 15896
- - n_strx: 2269
- n_type: 0xE
- n_sect: 6
- n_desc: 0
- n_value: 15968
- - n_strx: 2299
- n_type: 0xE
- n_sect: 6
- n_desc: 0
- n_value: 16000
- - n_strx: 2328
- n_type: 0xE
- n_sect: 6
- n_desc: 0
- n_value: 16072
- - n_strx: 2361
- n_type: 0xE
- n_sect: 6
- n_desc: 0
- n_value: 16104
- - n_strx: 2386
- n_type: 0xE
- n_sect: 6
- n_desc: 0
- n_value: 16176
- - n_strx: 2410
- n_type: 0xE
- n_sect: 6
- n_desc: 0
- n_value: 16248
- - n_strx: 2438
- n_type: 0xE
- n_sect: 6
- n_desc: 0
- n_value: 16280
- - n_strx: 2458
- n_type: 0xE
- n_sect: 6
- n_desc: 0
- n_value: 16352
- - n_strx: 2487
- n_type: 0xE
- n_sect: 6
- n_desc: 0
- n_value: 16424
- - n_strx: 2520
- n_type: 0xE
- n_sect: 6
- n_desc: 0
- n_value: 16456
- - n_strx: 2555
- n_type: 0xE
- n_sect: 6
- n_desc: 0
- n_value: 16496
- - n_strx: 2581
- n_type: 0xE
- n_sect: 6
- n_desc: 0
- n_value: 16520
- - n_strx: 2606
- n_type: 0xE
- n_sect: 6
- n_desc: 0
- n_value: 16592
- - n_strx: 2645
- n_type: 0xE
- n_sect: 6
- n_desc: 0
- n_value: 16616
- - n_strx: 2683
- n_type: 0xE
- n_sect: 6
- n_desc: 0
- n_value: 17008
- - n_strx: 2710
- n_type: 0xE
- n_sect: 6
- n_desc: 0
- n_value: 16856
- - n_strx: 2741
- n_type: 0xE
- n_sect: 6
- n_desc: 0
- n_value: 16680
- - n_strx: 2789
- n_type: 0xE
- n_sect: 6
- n_desc: 0
- n_value: 16712
- - n_strx: 2833
- n_type: 0xE
- n_sect: 6
- n_desc: 0
- n_value: 16720
- - n_strx: 2868
- n_type: 0xE
- n_sect: 6
- n_desc: 0
- n_value: 16744
- - n_strx: 2915
- n_type: 0xE
- n_sect: 6
- n_desc: 0
- n_value: 16776
- - n_strx: 2958
- n_type: 0xE
- n_sect: 6
- n_desc: 0
- n_value: 16784
- - n_strx: 3005
- n_type: 0xE
- n_sect: 6
- n_desc: 0
- n_value: 16816
- - n_strx: 3048
- n_type: 0xE
- n_sect: 6
- n_desc: 0
- n_value: 16824
- - n_strx: 3082
- n_type: 0xE
- n_sect: 6
- n_desc: 0
- n_value: 16928
- - n_strx: 3117
- n_type: 0xE
- n_sect: 6
- n_desc: 0
- n_value: 17080
- - n_strx: 3171
- n_type: 0xE
- n_sect: 6
- n_desc: 0
- n_value: 17112
- - n_strx: 3222
- n_type: 0xE
- n_sect: 6
- n_desc: 0
- n_value: 17144
- - n_strx: 3269
- n_type: 0xE
- n_sect: 6
- n_desc: 0
- n_value: 17152
- - n_strx: 3316
- n_type: 0xE
- n_sect: 6
- n_desc: 0
- n_value: 17176
- - n_strx: 4000
- n_type: 0x1E
- n_sect: 7
- n_desc: 0
- n_value: 17960
- - n_strx: 4027
- n_type: 0x1E
- n_sect: 7
- n_desc: 0
- n_value: 18000
- - n_strx: 4192
- n_type: 0x1E
- n_sect: 7
- n_desc: 0
- n_value: 18280
- - n_strx: 4217
- n_type: 0x1E
- n_sect: 7
- n_desc: 0
- n_value: 18320
- - n_strx: 4314
- n_type: 0x1E
- n_sect: 7
- n_desc: 0
- n_value: 18440
- - n_strx: 4344
- n_type: 0x1E
- n_sect: 7
- n_desc: 0
- n_value: 18480
- - n_strx: 4548
- n_type: 0x1E
- n_sect: 8
- n_desc: 0
- n_value: 18840
- - n_strx: 4578
- n_type: 0x1E
- n_sect: 8
- n_desc: 0
- n_value: 18848
- - n_strx: 4608
- n_type: 0x1E
- n_sect: 8
- n_desc: 0
- n_value: 18856
- - n_strx: 4690
- n_type: 0x1E
- n_sect: 8
- n_desc: 0
- n_value: 18880
- - n_strx: 4716
- n_type: 0x1E
- n_sect: 8
- n_desc: 0
- n_value: 18888
- - n_strx: 4742
- n_type: 0x1E
- n_sect: 8
- n_desc: 0
- n_value: 18896
- - n_strx: 4770
- n_type: 0x1E
- n_sect: 8
- n_desc: 0
- n_value: 18904
- - n_strx: 4798
- n_type: 0x1E
- n_sect: 8
- n_desc: 0
- n_value: 18912
- - n_strx: 4826
- n_type: 0x1E
- n_sect: 8
- n_desc: 0
- n_value: 18920
- - n_strx: 4854
- n_type: 0x1E
- n_sect: 8
- n_desc: 0
- n_value: 18928
- - n_strx: 4882
- n_type: 0x1E
- n_sect: 8
- n_desc: 0
- n_value: 18936
- - n_strx: 4992
- n_type: 0x1E
- n_sect: 8
- n_desc: 0
- n_value: 18968
- - n_strx: 5022
- n_type: 0x1E
- n_sect: 8
- n_desc: 0
- n_value: 18976
- - n_strx: 5053
- n_type: 0x1E
- n_sect: 9
- n_desc: 0
- n_value: 18984
- - n_strx: 5084
- n_type: 0x1E
- n_sect: 9
- n_desc: 0
- n_value: 19080
- - n_strx: 5114
- n_type: 0x1E
- n_sect: 9
- n_desc: 0
- n_value: 19176
- - n_strx: 5144
- n_type: 0x1E
- n_sect: 9
- n_desc: 0
- n_value: 19272
- - n_strx: 5231
- n_type: 0x1E
- n_sect: 10
- n_desc: 0
- n_value: 19376
- - n_strx: 5268
- n_type: 0x1E
- n_sect: 10
- n_desc: 0
- n_value: 19384
- - n_strx: 5304
- n_type: 0x1E
- n_sect: 10
- n_desc: 0
- n_value: 19392
- - n_strx: 5340
- n_type: 0x1E
- n_sect: 10
- n_desc: 0
- n_value: 19400
- - n_strx: 3353
- n_type: 0xF
- n_sect: 14
- n_desc: 0
- n_value: 19608
- - n_strx: 3370
- n_type: 0xF
- n_sect: 14
- n_desc: 0
- n_value: 19612
- - n_strx: 3387
- n_type: 0xF
- n_sect: 14
- n_desc: 0
- n_value: 19616
- - n_strx: 3410
- n_type: 0xF
- n_sect: 14
- n_desc: 0
- n_value: 19620
- - n_strx: 3432
- n_type: 0xF
- n_sect: 6
- n_desc: 0
- n_value: 12576
- - n_strx: 3452
- n_type: 0xF
- n_sect: 6
- n_desc: 0
- n_value: 12744
- - n_strx: 3476
- n_type: 0xF
- n_sect: 6
- n_desc: 0
- n_value: 12912
- - n_strx: 3509
- n_type: 0xF
- n_sect: 6
- n_desc: 0
- n_value: 13080
- - n_strx: 3542
- n_type: 0xF
- n_sect: 7
- n_desc: 0
- n_value: 17240
- - n_strx: 3567
- n_type: 0xF
- n_sect: 7
- n_desc: 0
- n_value: 17280
- - n_strx: 3588
- n_type: 0xF
- n_sect: 7
- n_desc: 0
- n_value: 17320
- - n_strx: 3611
- n_type: 0xF
- n_sect: 7
- n_desc: 0
- n_value: 17360
- - n_strx: 3630
- n_type: 0xF
- n_sect: 7
- n_desc: 0
- n_value: 17400
- - n_strx: 3657
- n_type: 0xF
- n_sect: 7
- n_desc: 0
- n_value: 17440
- - n_strx: 3680
- n_type: 0xF
- n_sect: 7
- n_desc: 0
- n_value: 17480
- - n_strx: 3716
- n_type: 0xF
- n_sect: 7
- n_desc: 0
- n_value: 17520
- - n_strx: 3748
- n_type: 0xF
- n_sect: 7
- n_desc: 0
- n_value: 17560
- - n_strx: 3784
- n_type: 0xF
- n_sect: 7
- n_desc: 0
- n_value: 17600
- - n_strx: 3816
- n_type: 0xF
- n_sect: 7
- n_desc: 0
- n_value: 17640
- - n_strx: 3837
- n_type: 0xF
- n_sect: 7
- n_desc: 0
- n_value: 17680
- - n_strx: 3862
- n_type: 0xF
- n_sect: 7
- n_desc: 0
- n_value: 17720
- - n_strx: 3887
- n_type: 0xF
- n_sect: 7
- n_desc: 0
- n_value: 17760
- - n_strx: 3908
- n_type: 0xF
- n_sect: 7
- n_desc: 0
- n_value: 17800
- - n_strx: 3933
- n_type: 0xF
- n_sect: 7
- n_desc: 0
- n_value: 17840
- - n_strx: 3954
- n_type: 0xF
- n_sect: 7
- n_desc: 0
- n_value: 17880
- - n_strx: 3979
- n_type: 0xF
- n_sect: 7
- n_desc: 0
- n_value: 17920
- - n_strx: 4050
- n_type: 0xF
- n_sect: 7
- n_desc: 0
- n_value: 18040
- - n_strx: 4077
- n_type: 0xF
- n_sect: 7
- n_desc: 0
- n_value: 18080
- - n_strx: 4100
- n_type: 0xF
- n_sect: 7
- n_desc: 0
- n_value: 18120
- - n_strx: 4125
- n_type: 0xF
- n_sect: 7
- n_desc: 0
- n_value: 18160
- - n_strx: 4146
- n_type: 0xF
- n_sect: 7
- n_desc: 0
- n_value: 18200
- - n_strx: 4171
- n_type: 0xF
- n_sect: 7
- n_desc: 0
- n_value: 18240
- - n_strx: 4238
- n_type: 0xF
- n_sect: 7
- n_desc: 0
- n_value: 18360
- - n_strx: 4278
- n_type: 0xF
- n_sect: 7
- n_desc: 0
- n_value: 18400
- - n_strx: 4370
- n_type: 0xF
- n_sect: 7
- n_desc: 0
- n_value: 18520
- - n_strx: 4395
- n_type: 0xF
- n_sect: 7
- n_desc: 0
- n_value: 18560
- - n_strx: 4416
- n_type: 0xF
- n_sect: 7
- n_desc: 0
- n_value: 18600
- - n_strx: 4436
- n_type: 0xF
- n_sect: 7
- n_desc: 0
- n_value: 18640
- - n_strx: 4452
- n_type: 0xF
- n_sect: 7
- n_desc: 0
- n_value: 18680
- - n_strx: 4477
- n_type: 0xF
- n_sect: 7
- n_desc: 0
- n_value: 18720
- - n_strx: 4498
- n_type: 0xF
- n_sect: 7
- n_desc: 0
- n_value: 18760
- - n_strx: 4521
- n_type: 0xF
- n_sect: 7
- n_desc: 0
- n_value: 18800
- - n_strx: 4638
- n_type: 0xF
- n_sect: 8
- n_desc: 0
- n_value: 18864
- - n_strx: 4664
- n_type: 0xF
- n_sect: 8
- n_desc: 0
- n_value: 18872
- - n_strx: 4910
- n_type: 0xF
- n_sect: 8
- n_desc: 0
- n_value: 18944
- - n_strx: 4938
- n_type: 0xF
- n_sect: 8
- n_desc: 0
- n_value: 18952
- - n_strx: 4966
- n_type: 0xF
- n_sect: 8
- n_desc: 0
- n_value: 18960
- - n_strx: 5178
- n_type: 0xF
- n_sect: 9
- n_desc: 128
- n_value: 19368
- - n_strx: 5204
- n_type: 0xF
- n_sect: 9
- n_desc: 128
- n_value: 19372
- - n_strx: 5380
- n_type: 0x1
- n_sect: 0
- n_desc: 768
- n_value: 0
- - n_strx: 5410
- n_type: 0x1
- n_sect: 0
- n_desc: 512
- n_value: 0
- - n_strx: 5433
- n_type: 0x1
- n_sect: 0
- n_desc: 768
- n_value: 0
- - n_strx: 5467
- n_type: 0x1
- n_sect: 0
- n_desc: 512
- n_value: 0
- - n_strx: 5494
- n_type: 0x1
- n_sect: 0
- n_desc: 512
- n_value: 0
- - n_strx: 5513
- n_type: 0x1
- n_sect: 0
- n_desc: 512
- n_value: 0
- - n_strx: 5533
- n_type: 0x1
- n_sect: 0
- n_desc: 1024
- n_value: 0
- StringTable:
- - ' '
- - '-[Basic3 property1]'
- - '-[Basic3 setProperty1:]'
- - '-[Basic3 property2]'
- - '-[Basic3 isProperty3]'
- - '-[Basic3 setProperty3:]'
- - '+[Basic5 aClassMethod]'
- - '-[Basic5 anInstanceMethod]'
- - '-[Basic6 anInstanceMethodFromAnExtension]'
- - '-[Basic6 property1]'
- - '-[Basic6 setProperty1:]'
- - '-[Basic6(Foo) property2]'
- - '-[Basic6(Foo) setProperty2:]'
- - '-[Basic6(Foo) anInstanceMethodFromACategory]'
- - '-[Basic7 anInstanceMethodFromAnHiddenExtension]'
- - '-[ExternalManagedObject foo]'
- - '-[NSManagedObject(Simple) supportsSimple]'
- - '+[Basic8 useSameName]'
- - '-[Basic8 useSameName]'
- - '-[A aMethod]'
- - '-[Basic9 aProperty]'
- - '-[FooClass baseMethod]'
- - '-[FooClass protocolMethod]'
- - '-[FooClass barMethod]'
- - '-[FooClass(Private) privateProcotolMethod]'
- - '__OBJC_METACLASS_RO_$_Simple'
- - '__OBJC_CLASS_RO_$_Simple'
- - '__OBJC_METACLASS_RO_$_Base'
- - '__OBJC_CLASS_RO_$_Base'
- - '__OBJC_METACLASS_RO_$_SubClass'
- - '__OBJC_CLASS_RO_$_SubClass'
- - '__OBJC_METACLASS_RO_$_SimpleInternalAPI'
- - '__OBJC_CLASS_RO_$_SimpleInternalAPI'
- - '__OBJC_METACLASS_RO_$_SimpleInternalSPI'
- - '__OBJC_CLASS_RO_$_SimpleInternalSPI'
- - '__OBJC_CLASS_RO_$_Basic1'
- - '__OBJC_METACLASS_RO_$_Basic1'
- - '__OBJC_METACLASS_RO_$_Basic2'
- - '__OBJC_CLASS_RO_$_Basic2'
- - '__OBJC_METACLASS_RO_$_Basic3'
- - '__OBJC_$_INSTANCE_METHODS_Basic3'
- - '__OBJC_$_INSTANCE_VARIABLES_Basic3'
- - '__OBJC_$_PROP_LIST_Basic3'
- - '__OBJC_CLASS_RO_$_Basic3'
- - '__OBJC_METACLASS_RO_$_Basic4'
- - '__OBJC_$_INSTANCE_VARIABLES_Basic4'
- - '__OBJC_CLASS_RO_$_Basic4'
- - '__OBJC_METACLASS_RO_$_Basic4_1'
- - '__OBJC_$_INSTANCE_VARIABLES_Basic4_1'
- - '__OBJC_CLASS_RO_$_Basic4_1'
- - '__OBJC_METACLASS_RO_$_Basic4_2'
- - '__OBJC_$_INSTANCE_VARIABLES_Basic4_2'
- - '__OBJC_CLASS_RO_$_Basic4_2'
- - '__OBJC_$_CLASS_METHODS_Basic5'
- - '__OBJC_METACLASS_RO_$_Basic5'
- - '__OBJC_$_INSTANCE_METHODS_Basic5'
- - '__OBJC_CLASS_RO_$_Basic5'
- - '__OBJC_METACLASS_RO_$_Basic6'
- - '__OBJC_$_INSTANCE_METHODS_Basic6'
- - '__OBJC_$_INSTANCE_VARIABLES_Basic6'
- - '__OBJC_$_PROP_LIST_Basic6'
- - '__OBJC_CLASS_RO_$_Basic6'
- - '__OBJC_$_CATEGORY_INSTANCE_METHODS_Basic6_$_Foo'
- - '__OBJC_$_PROP_LIST_Basic6_$_Foo'
- - '__OBJC_$_CATEGORY_Basic6_$_Foo'
- - '__OBJC_METACLASS_RO_$_Basic7'
- - '__OBJC_$_INSTANCE_METHODS_Basic7'
- - '__OBJC_CLASS_RO_$_Basic7'
- - '__OBJC_METACLASS_RO_$_ExternalManagedObject'
- - '__OBJC_$_INSTANCE_METHODS_ExternalManagedObject'
- - '__OBJC_CLASS_RO_$_ExternalManagedObject'
- - '__OBJC_$_CATEGORY_INSTANCE_METHODS_NSManagedObject_$_Simple'
- - '__OBJC_$_CATEGORY_NSManagedObject_$_Simple'
- - '__OBJC_METACLASS_RO_$_HiddenClass'
- - '__OBJC_CLASS_RO_$_HiddenClass'
- - '__OBJC_$_CLASS_METHODS_Basic8'
- - '__OBJC_METACLASS_RO_$_Basic8'
- - '__OBJC_$_INSTANCE_METHODS_Basic8'
- - '__OBJC_CLASS_RO_$_Basic8'
- - '__OBJC_METACLASS_RO_$_A'
- - '__OBJC_$_INSTANCE_METHODS_A'
- - '__OBJC_CLASS_RO_$_A'
- - '__OBJC_METACLASS_RO_$_Basic9'
- - '__OBJC_$_INSTANCE_METHODS_Basic9'
- - '__OBJC_$_INSTANCE_VARIABLES_Basic9'
- - '__OBJC_$_PROP_LIST_Basic9'
- - '__OBJC_CLASS_RO_$_Basic9'
- - '__OBJC_$_PROP_LIST_Basic9_$_deprecated'
- - '__OBJC_$_CATEGORY_Basic9_$_deprecated'
- - '__OBJC_CLASS_RO_$_FooClass'
- - '__OBJC_METACLASS_RO_$_FooClass'
- - '__OBJC_$_PROTOCOL_INSTANCE_METHODS_BaseProtocol'
- - '__OBJC_$_PROTOCOL_METHOD_TYPES_BaseProtocol'
- - '__OBJC_$_PROTOCOL_REFS_FooProtocol'
- - '__OBJC_$_PROTOCOL_INSTANCE_METHODS_FooProtocol'
- - '__OBJC_$_PROTOCOL_METHOD_TYPES_FooProtocol'
- - '__OBJC_$_PROTOCOL_INSTANCE_METHODS_BarProtocol'
- - '__OBJC_$_PROTOCOL_METHOD_TYPES_BarProtocol'
- - '__OBJC_CLASS_PROTOCOLS_$_FooClass'
- - '__OBJC_$_INSTANCE_METHODS_FooClass'
- - '__OBJC_$_CATEGORY_INSTANCE_METHODS_FooClass_$_Private'
- - '__OBJC_$_PROTOCOL_INSTANCE_METHODS_PrivateProtocol'
- - '__OBJC_$_PROTOCOL_METHOD_TYPES_PrivateProtocol'
- - '__OBJC_CATEGORY_PROTOCOLS_$_FooClass_$_Private'
- - '__OBJC_$_CATEGORY_FooClass_$_Private'
- - _extraGlobalAPI1
- - _extraGlobalAPI2
- - _privateGlobalVariable
- - _publicGlobalVariable
- - '_OBJC_EHTYPE_$_Base'
- - '_OBJC_EHTYPE_$_SubClass'
- - '_OBJC_EHTYPE_$_SimpleInternalAPI'
- - '_OBJC_EHTYPE_$_SimpleInternalSPI'
- - '_OBJC_METACLASS_$_Simple'
- - '_OBJC_CLASS_$_Simple'
- - '_OBJC_METACLASS_$_Base'
- - '_OBJC_CLASS_$_Base'
- - '_OBJC_METACLASS_$_SubClass'
- - '_OBJC_CLASS_$_SubClass'
- - '_OBJC_METACLASS_$_SimpleInternalAPI'
- - '_OBJC_CLASS_$_SimpleInternalAPI'
- - '_OBJC_METACLASS_$_SimpleInternalSPI'
- - '_OBJC_CLASS_$_SimpleInternalSPI'
- - '_OBJC_CLASS_$_Basic1'
- - '_OBJC_METACLASS_$_Basic1'
- - '_OBJC_METACLASS_$_Basic2'
- - '_OBJC_CLASS_$_Basic2'
- - '_OBJC_METACLASS_$_Basic3'
- - '_OBJC_CLASS_$_Basic3'
- - '_OBJC_METACLASS_$_Basic4'
- - '_OBJC_CLASS_$_Basic4'
- - '_OBJC_METACLASS_$_Basic4_1'
- - '_OBJC_CLASS_$_Basic4_1'
- - '_OBJC_METACLASS_$_Basic4_2'
- - '_OBJC_CLASS_$_Basic4_2'
- - '_OBJC_METACLASS_$_Basic5'
- - '_OBJC_CLASS_$_Basic5'
- - '_OBJC_METACLASS_$_Basic6'
- - '_OBJC_CLASS_$_Basic6'
- - '_OBJC_METACLASS_$_Basic7'
- - '_OBJC_CLASS_$_Basic7'
- - '_OBJC_METACLASS_$_ExternalManagedObject'
- - '_OBJC_CLASS_$_ExternalManagedObject'
- - '_OBJC_METACLASS_$_HiddenClass'
- - '_OBJC_CLASS_$_HiddenClass'
- - '_OBJC_METACLASS_$_Basic8'
- - '_OBJC_CLASS_$_Basic8'
- - '_OBJC_METACLASS_$_A'
- - '_OBJC_CLASS_$_A'
- - '_OBJC_METACLASS_$_Basic9'
- - '_OBJC_CLASS_$_Basic9'
- - '_OBJC_CLASS_$_FooClass'
- - '_OBJC_METACLASS_$_FooClass'
- - '_OBJC_IVAR_$_Basic3.property1'
- - '_OBJC_IVAR_$_Basic3.property2'
- - '_OBJC_IVAR_$_Basic3.property3'
- - '_OBJC_IVAR_$_Basic4.ivar1'
- - '_OBJC_IVAR_$_Basic4.ivar2'
- - '_OBJC_IVAR_$_Basic4.ivar3'
- - '_OBJC_IVAR_$_Basic4.ivar4'
- - '_OBJC_IVAR_$_Basic4_1.ivar1'
- - '_OBJC_IVAR_$_Basic4_1.ivar2'
- - '_OBJC_IVAR_$_Basic4_1.ivar3'
- - '_OBJC_IVAR_$_Basic4_1.ivar4'
- - '_OBJC_IVAR_$_Basic4_2.ivar4'
- - '_OBJC_IVAR_$_Basic4_2.ivar3'
- - '_OBJC_IVAR_$_Basic4_2.ivar2'
- - '_OBJC_IVAR_$_Basic4_2.ivar1'
- - '_OBJC_IVAR_$_Basic6.ivar1'
- - '_OBJC_IVAR_$_Basic6.property1'
- - '_OBJC_IVAR_$_Basic9._aProperty'
- - '__OBJC_PROTOCOL_$_BaseProtocol'
- - '__OBJC_PROTOCOL_$_FooProtocol'
- - '__OBJC_PROTOCOL_$_BarProtocol'
- - '__OBJC_PROTOCOL_$_PrivateProtocol'
- - _weakPublicGlobalVariable
- - _weakPrivateGlobalVariable
- - '__OBJC_LABEL_PROTOCOL_$_BaseProtocol'
- - '__OBJC_LABEL_PROTOCOL_$_FooProtocol'
- - '__OBJC_LABEL_PROTOCOL_$_BarProtocol'
- - '__OBJC_LABEL_PROTOCOL_$_PrivateProtocol'
- - '_OBJC_CLASS_$_NSManagedObject'
- - '_OBJC_CLASS_$_NSObject'
- - '_OBJC_METACLASS_$_NSManagedObject'
- - '_OBJC_METACLASS_$_NSObject'
- - __objc_empty_cache
- - _objc_ehtype_vtable
- - dyld_stub_binder
- - ''
- - ''
- FunctionStarts: [ 0x1BC0, 0x1BCA, 0x1BD3, 0x1BDD, 0x1BE7, 0x1BF0, 0x1BF6,
- 0x1BFC, 0x1C02, 0x1C0C, 0x1C15, 0x1C20, 0x1C26, 0x1C2C,
- 0x1C32, 0x1C38, 0x1C40, 0x1C46, 0x1C4C, 0x1C52, 0x1C5C,
- 0x1C62, 0x1C68, 0x1C6E ]
-...
diff --git a/clang/test/InstallAPI/Inputs/Simple/SimpleInternalAPI.h b/clang/test/InstallAPI/Inputs/Simple/SimpleInternalAPI.h
deleted file mode 100644
index 5dd416a0619cfb..00000000000000
--- a/clang/test/InstallAPI/Inputs/Simple/SimpleInternalAPI.h
+++ /dev/null
@@ -1,3 +0,0 @@
-#ifndef HAVE_SEEN_PROJECT_HEADER_FIRST
-#error "Project header was not included in the correct order!"
-#endif
diff --git a/clang/test/InstallAPI/Inputs/Simple/SimpleInternalAPI2.h b/clang/test/InstallAPI/Inputs/Simple/SimpleInternalAPI2.h
deleted file mode 100644
index 9bbae52d721538..00000000000000
--- a/clang/test/InstallAPI/Inputs/Simple/SimpleInternalAPI2.h
+++ /dev/null
@@ -1,7 +0,0 @@
-#import <Foundation/Foundation.h>
-
-__attribute__((objc_exception))
- at interface SimpleInternalAPI : NSObject
- at end
-
-#define HAVE_SEEN_PROJECT_HEADER_FIRST 1
diff --git a/clang/test/InstallAPI/Inputs/Simple/SimpleInternalSPI.h b/clang/test/InstallAPI/Inputs/Simple/SimpleInternalSPI.h
deleted file mode 100644
index a816c01abeb0d2..00000000000000
--- a/clang/test/InstallAPI/Inputs/Simple/SimpleInternalSPI.h
+++ /dev/null
@@ -1,5 +0,0 @@
-#import <Foundation/Foundation.h>
-
-__attribute__((objc_exception))
- at interface SimpleInternalSPI : NSObject
- at end
diff --git a/clang/test/InstallAPI/extra-exclude-headers.test b/clang/test/InstallAPI/extra-exclude-headers.test
deleted file mode 100644
index 663ca1a5d5000d..00000000000000
--- a/clang/test/InstallAPI/extra-exclude-headers.test
+++ /dev/null
@@ -1,207 +0,0 @@
-; RUN: rm -rf %t
-; RUN: split-file %s %t
-; RUN: mkdir -p %t/System/Library/Frameworks
-; RUN: cp -r %S/Inputs/Simple/Simple.framework %t/System/Library/Frameworks/
-; RUN: sed -e "s|DSTROOT|%/t|g" %t/inputs.json.in > %t/inputs.json
-; RUN: yaml2obj %S/Inputs/Simple/Simple.yaml -o %t/Simple
-
-// Add exclude options.
-; RUN: clang-installapi -target x86_64-apple-macosx10.12 \
-; RUN: -install_name /System/Library/Frameworks/Simple.framework/Versions/A/Simple \
-; RUN: -current_version 1.2.3 -compatibility_version 1 \
-; RUN: -F%t/System/Library/Frameworks \
-; RUN: %t/inputs.json -o %t/Simple.tbd \
-; RUN: --verify-against=%t/Simple --verify-mode=ErrorsAndWarnings \
-; RUN: --exclude-public-header=**/SimpleAPI.h \
-; RUN: --exclude-private-header=**/SimplePrivateSPI.h 2>&1 | FileCheck -check-prefix=WARNINGS %s
-; RUN: llvm-readtapi -compare %t/Simple.tbd %t/expected-excluded.tbd
-
-// Add extra options.
-; RUN: clang-installapi -target x86_64-apple-macosx10.12 \
-; RUN: -install_name /System/Library/Frameworks/Simple.framework/Versions/A/Simple \
-; RUN: -current_version 1.2.3 -compatibility_version 1 \
-; RUN: -F%t/System/Library/Frameworks \
-; RUN: %t/inputs.json -o %t/Simple.tbd \
-; RUN: --verify-against=%t/Simple --verify-mode=Pedantic \
-; RUN: --extra-project-header=%S/Inputs/Simple/SimpleInternalAPI2.h \
-; RUN: --extra-project-header=%S/Inputs/Simple/SimpleInternalAPI.h \
-; RUN: --extra-public-header=%S/Inputs/Simple/Extra \
-; RUN: --extra-private-header=%S/Inputs/Simple/SimpleInternalSPI.h \
-; RUN: --exclude-public-header=**/SimpleAPI.h \
-; RUN: --exclude-private-header=**/SimplePrivateSPI.h 2>&1 | FileCheck -check-prefix=PEDANTIC -allow-empty %s
-; RUN: llvm-readtapi -compare %t/Simple.tbd %t/expected-extra.tbd
-
-// Check fatal missing file input.
-; RUN: not clang-installapi -target x86_64-apple-macosx10.12 \
-; RUN: -install_name /System/Library/Frameworks/Simple.framework/Versions/A/Simple \
-; RUN: -current_version 1.2.3 -compatibility_version 1 \
-; RUN: -F%t/System/Library/Frameworks \
-; RUN: %t/inputs.json -o %t/Simple.tbd \
-; RUN: --extra-public-header=%S/Inputs/Simple/NoSuchFile.h 2>&1 | FileCheck -allow-empty -check-prefix=NOPUBLIC %s
-
-; WARNINGS: warning: no declaration was found for exported symbol '_extraGlobalAPI1' in dynamic library
-; WARNINGS: warning: no declaration was found for exported symbol '_extraGlobalAPI2' in dynamic library
-; WARNINGS: warning: no declaration was found for exported symbol '(ObjC Class) SimpleInternalSPI' in dynamic library
-; WARNINGS: warning: no declaration was found for exported symbol '(ObjC Class) SimpleInternalAPI' in dynamic library
-
-; PEDANTIC-NOT: error
-; PEDANTIC: warning: cannot find protocol definition for 'ForwardProcotol'
-
-; NOPUBLIC: error: no such public header file:
-
-;--- expected-excluded.tbd
-{
- "main_library": {
- "current_versions": [
- {
- "version": "1.2.3"
- }
- ],
- "exported_symbols": [
- {
- "data": {
- "global": [
- "_publicGlobalVariable",
- "_privateGlobalVariable"
- ],
- "objc_class": [
- "ExternalManagedObject", "Basic6",
- "Basic1", "Base", "Basic3",
- "FooClass", "Simple",
- "Basic4_2", "Basic5",
- "Basic9","Basic8",
- "Basic2", "Basic4", "A", "SubClass"
- ],
- "objc_eh_type": [
- "SubClass", "Base"
- ],
- "objc_ivar": [
- "Basic4.ivar2", "Basic4_2.ivar1", "Basic6.ivar1",
- "Basic4.ivar1", "Basic4_2.ivar2"
- ],
- "weak": [
- "_weakPrivateGlobalVariable", "_weakPublicGlobalVariable"
- ]
- }
- }
- ],
- "flags": [
- {
- "attributes": ["not_app_extension_safe"]
- }
- ],
- "install_names": [
- {
- "name": "/System/Library/Frameworks/Simple.framework/Versions/A/Simple"
- }
- ],
- "target_info": [
- {"min_deployment": "10.12", "target": "x86_64-macos"}
- ]
- },
- "tapi_tbd_version": 5
-}
-
-;--- expected-extra.tbd
-{
- "main_library": {
- "current_versions": [
- { "version": "1.2.3" }
- ],
- "exported_symbols": [
- {
- "data": {
- "global": [
- "_publicGlobalVariable", "_extraGlobalAPI2",
- "_extraGlobalAPI1", "_privateGlobalVariable"
- ],
- "objc_class": [
- "SubClass", "SimpleInternalSPI",
- "Basic6", "Basic1", "Base",
- "Basic3", "Simple", "Basic4_2",
- "Basic5", "FooClass", "Basic9",
- "Basic8", "Basic2", "Basic4",
- "A", "SimpleInternalAPI",
- "ExternalManagedObject"
- ],
- "objc_eh_type": [
- "SubClass", "SimpleInternalAPI",
- "Base", "SimpleInternalSPI"
- ],
- "objc_ivar": [
- "Basic4.ivar2", "Basic4_2.ivar1",
- "Basic6.ivar1", "Basic4.ivar1",
- "Basic4_2.ivar2"
- ],
- "weak": [
- "_weakPrivateGlobalVariable", "_weakPublicGlobalVariable"
- ]
- }
- }
- ],
- "flags": [
- {
- "attributes": [ "not_app_extension_safe"]
- }
- ],
- "install_names": [
- { "name": "/System/Library/Frameworks/Simple.framework/Versions/A/Simple" }
- ],
- "target_info": [
- { "min_deployment": "10.12", "target": "x86_64-macos" }
- ]
- },
- "tapi_tbd_version": 5
-}
-
-;--- inputs.json.in
-{
- "headers": [
- {
- "path" : "DSTROOT/System/Library/Frameworks/Simple.framework/Headers/Basic.h",
- "type" : "public"
- },
- {
- "path" : "DSTROOT/System/Library/Frameworks/Simple.framework/Headers/External.h",
- "type" : "public"
- },
- {
- "path" : "DSTROOT/System/Library/Frameworks/Simple.framework/Headers/Simple.h",
- "type" : "public"
- },
- {
- "path" : "DSTROOT/System/Library/Frameworks/Simple.framework/Headers/SimpleAPI.h",
- "type" : "public"
- },
- {
- "path" : "DSTROOT/System/Library/Frameworks/Simple.framework/PrivateHeaders/SimplePrivate.h",
- "type" : "private"
- },
- {
- "path" : "DSTROOT/System/Library/Frameworks/Simple.framework/PrivateHeaders/SimplePrivateSPI.h",
- "type" : "private"
- }
- ],
- "version": "3"
-}
-
-;--- System/Library/Frameworks/Foundation.framework/Headers/Foundation.h
- at interface NSObject
- at end
-
-typedef unsigned char BOOL;
-#ifndef NS_AVAILABLE
-#define NS_AVAILABLE(x,y) __attribute__((availability(macosx,introduced=x)))
-#endif
-#ifndef NS_UNAVAILABLE
-#define NS_UNAVAILABLE __attribute__((unavailable))
-#endif
-#ifndef NS_DEPRECATED_MAC
-#define NS_DEPRECATED_MAC(x,y) __attribute__((availability(macosx,introduced=x,deprecated=y,message="" )));
-#endif
-
- at interface NSManagedObject
- at end
-
- at interface NSSet
- at end
diff --git a/clang/tools/clang-installapi/InstallAPIOpts.td b/clang/tools/clang-installapi/InstallAPIOpts.td
index ab9e1fe7f2f949..87f4c3327e8409 100644
--- a/clang/tools/clang-installapi/InstallAPIOpts.td
+++ b/clang/tools/clang-installapi/InstallAPIOpts.td
@@ -29,35 +29,3 @@ def verify_mode_EQ : Joined<["--"], "verify-mode=">,
HelpText<"Specify the severity and extend of the validation. Valid modes are ErrorsOnly, ErrorsAndWarnings, and Pedantic.">;
def demangle : Flag<["--", "-"], "demangle">,
HelpText<"Demangle symbols when printing warnings and errors">;
-
-// Additional input options.
-def extra_project_header : Separate<["-"], "extra-project-header">,
- MetaVarName<"<path>">,
- HelpText<"Add additional project header location for parsing">;
-def extra_project_header_EQ : Joined<["--"], "extra-project-header=">,
- Alias<extra_project_header>;
-def exclude_project_header : Separate<["-"], "exclude-project-header">,
- MetaVarName<"<glob>">,
- HelpText<"Exclude project header from parsing">;
-def exclude_project_header_EQ : Joined<["--"], "exclude-project-header=">,
- Alias<exclude_project_header>;
-def extra_public_header : Separate<["-"], "extra-public-header">,
- MetaVarName<"<path>">,
- HelpText<"Add additional public header location for parsing">;
-def extra_public_header_EQ : Joined<["--"], "extra-public-header=">,
- Alias<extra_public_header>;
-def extra_private_header : Separate<["-"], "extra-private-header">,
- MetaVarName<"<path>">,
- HelpText<"Add additional private header location for parsing">;
-def extra_private_header_EQ : Joined<["--"], "extra-private-header=">,
- Alias<extra_private_header>;
-def exclude_public_header : Separate<["-"], "exclude-public-header">,
- MetaVarName<"<glob>">,
- HelpText<"Exclude public header from parsing">;
-def exclude_public_header_EQ : Joined<["--"], "exclude-public-header=">,
- Alias<exclude_public_header>;
-def exclude_private_header : Separate<["-"], "exclude-private-header">,
- MetaVarName<"<glob>">,
- HelpText<"Exclude private header from parsing">;
-def exclude_private_header_EQ : Joined<["--"], "exclude-private-header=">,
- Alias<exclude_private_header>;
diff --git a/clang/tools/clang-installapi/Options.cpp b/clang/tools/clang-installapi/Options.cpp
index 4f79c62724a62d..b8696bb7896d86 100644
--- a/clang/tools/clang-installapi/Options.cpp
+++ b/clang/tools/clang-installapi/Options.cpp
@@ -10,7 +10,6 @@
#include "clang/Driver/Driver.h"
#include "clang/Frontend/FrontendDiagnostic.h"
#include "clang/InstallAPI/FileList.h"
-#include "clang/InstallAPI/HeaderFile.h"
#include "clang/InstallAPI/InstallAPIDiagnostic.h"
#include "llvm/Support/Program.h"
#include "llvm/TargetParser/Host.h"
@@ -182,26 +181,6 @@ bool Options::processFrontendOptions(InputArgList &Args) {
return true;
}
-bool Options::addFilePaths(InputArgList &Args, PathSeq &Headers,
- OptSpecifier ID) {
- for (const StringRef Path : Args.getAllArgValues(ID)) {
- if ((bool)FM->getDirectory(Path, /*CacheFailure=*/false)) {
- auto InputHeadersOrErr = enumerateFiles(*FM, Path);
- if (!InputHeadersOrErr) {
- Diags->Report(diag::err_cannot_open_file)
- << Path << toString(InputHeadersOrErr.takeError());
- return false;
- }
- // Sort headers to ensure deterministic behavior.
- sort(*InputHeadersOrErr);
- for (std::string &H : *InputHeadersOrErr)
- Headers.emplace_back(std::move(H));
- } else
- Headers.emplace_back(Path);
- }
- return true;
-}
-
std::vector<const char *>
Options::processAndFilterOutInstallAPIOptions(ArrayRef<const char *> Args) {
std::unique_ptr<llvm::opt::OptTable> Table;
@@ -241,35 +220,6 @@ Options::processAndFilterOutInstallAPIOptions(ArrayRef<const char *> Args) {
if (const Arg *A = ParsedArgs.getLastArg(OPT_verify_against))
DriverOpts.DylibToVerify = A->getValue();
- // Handle exclude & extra header directories or files.
- auto handleAdditionalInputArgs = [&](PathSeq &Headers,
- clang::installapi::ID OptID) {
- if (ParsedArgs.hasArgNoClaim(OptID))
- Headers.clear();
- return addFilePaths(ParsedArgs, Headers, OptID);
- };
-
- if (!handleAdditionalInputArgs(DriverOpts.ExtraPublicHeaders,
- OPT_extra_public_header))
- return {};
-
- if (!handleAdditionalInputArgs(DriverOpts.ExtraPrivateHeaders,
- OPT_extra_private_header))
- return {};
- if (!handleAdditionalInputArgs(DriverOpts.ExtraProjectHeaders,
- OPT_extra_project_header))
- return {};
-
- if (!handleAdditionalInputArgs(DriverOpts.ExcludePublicHeaders,
- OPT_exclude_public_header))
- return {};
- if (!handleAdditionalInputArgs(DriverOpts.ExcludePrivateHeaders,
- OPT_exclude_private_header))
- return {};
- if (!handleAdditionalInputArgs(DriverOpts.ExcludeProjectHeaders,
- OPT_exclude_project_header))
- return {};
-
/// Any unclaimed arguments should be forwarded to the clang driver.
std::vector<const char *> ClangDriverArgs(ParsedArgs.size());
for (const Arg *A : ParsedArgs) {
@@ -352,77 +302,6 @@ InstallAPIContext Options::createContext() {
return Ctx;
}
}
- // After initial input has been processed, add any extra headers.
- auto HandleExtraHeaders = [&](PathSeq &Headers, HeaderType Type) -> bool {
- assert(Type != HeaderType::Unknown && "Missing header type.");
- for (const StringRef Path : Headers) {
- if (!FM->getOptionalFileRef(Path)) {
- Diags->Report(diag::err_no_such_header_file)
- << Path << (unsigned)Type - 1;
- return false;
- }
- SmallString<PATH_MAX> FullPath(Path);
- FM->makeAbsolutePath(FullPath);
-
- auto IncludeName = createIncludeHeaderName(FullPath);
- Ctx.InputHeaders.emplace_back(
- FullPath, Type, IncludeName.has_value() ? *IncludeName : "");
- Ctx.InputHeaders.back().setExtra();
- }
- return true;
- };
-
- if (!HandleExtraHeaders(DriverOpts.ExtraPublicHeaders, HeaderType::Public) ||
- !HandleExtraHeaders(DriverOpts.ExtraPrivateHeaders,
- HeaderType::Private) ||
- !HandleExtraHeaders(DriverOpts.ExtraProjectHeaders, HeaderType::Project))
- return Ctx;
-
- // After all headers have been added, consider excluded headers.
- std::vector<std::unique_ptr<HeaderGlob>> ExcludedHeaderGlobs;
- std::set<FileEntryRef> ExcludedHeaderFiles;
- auto ParseGlobs = [&](const PathSeq &Paths, HeaderType Type) {
- for (const StringRef Path : Paths) {
- auto Glob = HeaderGlob::create(Path, Type);
- if (Glob)
- ExcludedHeaderGlobs.emplace_back(std::move(Glob.get()));
- else {
- consumeError(Glob.takeError());
- if (auto File = FM->getFileRef(Path))
- ExcludedHeaderFiles.emplace(*File);
- else {
- Diags->Report(diag::err_no_such_header_file)
- << Path << (unsigned)Type;
- return false;
- }
- }
- }
- return true;
- };
-
- if (!ParseGlobs(DriverOpts.ExcludePublicHeaders, HeaderType::Public) ||
- !ParseGlobs(DriverOpts.ExcludePrivateHeaders, HeaderType::Private) ||
- !ParseGlobs(DriverOpts.ExcludeProjectHeaders, HeaderType::Project))
- return Ctx;
-
- for (HeaderFile &Header : Ctx.InputHeaders) {
- for (auto &Glob : ExcludedHeaderGlobs)
- if (Glob->match(Header))
- Header.setExcluded();
- }
- if (!ExcludedHeaderFiles.empty()) {
- for (HeaderFile &Header : Ctx.InputHeaders) {
- auto FileRef = FM->getFileRef(Header.getPath());
- if (!FileRef)
- continue;
- if (ExcludedHeaderFiles.count(*FileRef))
- Header.setExcluded();
- }
- }
- // Report if glob was ignored.
- for (const auto &Glob : ExcludedHeaderGlobs)
- if (!Glob->didMatch())
- Diags->Report(diag::warn_glob_did_not_match) << Glob->str();
// Parse binary dylib and initialize verifier.
if (DriverOpts.DylibToVerify.empty()) {
diff --git a/clang/tools/clang-installapi/Options.h b/clang/tools/clang-installapi/Options.h
index c18309f693701e..2beeafc86bb086 100644
--- a/clang/tools/clang-installapi/Options.h
+++ b/clang/tools/clang-installapi/Options.h
@@ -31,24 +31,6 @@ struct DriverOptions {
/// \brief Path to input file lists (JSON).
llvm::MachO::PathSeq FileLists;
- /// \brief Paths of extra public headers.
- PathSeq ExtraPublicHeaders;
-
- /// \brief Paths of extra private headers.
- PathSeq ExtraPrivateHeaders;
-
- /// \brief Paths of extra project headers.
- PathSeq ExtraProjectHeaders;
-
- /// \brief List of excluded public headers.
- PathSeq ExcludePublicHeaders;
-
- /// \brief List of excluded private headers.
- PathSeq ExcludePrivateHeaders;
-
- /// \brief List of excluded project headers.
- PathSeq ExcludeProjectHeaders;
-
/// \brief Mappings of target triples & tapi targets to build for.
std::map<llvm::MachO::Target, llvm::Triple> Targets;
@@ -121,9 +103,6 @@ class Options {
std::vector<std::string> &getClangFrontendArgs() { return FrontendArgs; }
private:
- bool addFilePaths(llvm::opt::InputArgList &Args, PathSeq &Headers,
- llvm::opt::OptSpecifier ID);
-
DiagnosticsEngine *Diags;
FileManager *FM;
std::vector<std::string> FrontendArgs;
diff --git a/llvm/include/llvm/TextAPI/Utils.h b/llvm/include/llvm/TextAPI/Utils.h
index 319e0abce25b03..31d3c45f9e2964 100644
--- a/llvm/include/llvm/TextAPI/Utils.h
+++ b/llvm/include/llvm/TextAPI/Utils.h
@@ -14,10 +14,8 @@
#define LLVM_TEXTAPI_UTILS_H
#include "llvm/ADT/Twine.h"
-#include "llvm/Support/Error.h"
#include "llvm/Support/FileSystem.h"
#include "llvm/Support/Path.h"
-#include "llvm/Support/Regex.h"
#if !defined(PATH_MAX)
#define PATH_MAX 1024
@@ -70,10 +68,5 @@ std::error_code make_relative(StringRef From, StringRef To,
/// \param IsSymLink Whether path points to a symlink.
bool isPrivateLibrary(StringRef Path, bool IsSymLink = false);
-/// Create a regex rule from provided glob string.
-/// \param Glob String that represents glob input.
-/// \return The equivalent regex rule.
-llvm::Expected<llvm::Regex> createRegexFromGlob(llvm::StringRef Glob);
-
} // namespace llvm::MachO
#endif // LLVM_TEXTAPI_UTILS_H
diff --git a/llvm/lib/TextAPI/Utils.cpp b/llvm/lib/TextAPI/Utils.cpp
index 56b63ee01b390c..b5c3999a86ea9d 100644
--- a/llvm/lib/TextAPI/Utils.cpp
+++ b/llvm/lib/TextAPI/Utils.cpp
@@ -152,49 +152,3 @@ bool llvm::MachO::isPrivateLibrary(StringRef Path, bool IsSymLink) {
}
return false;
}
-
-static StringLiteral RegexMetachars = "()^$|+.[]\\{}";
-
-llvm::Expected<Regex> llvm::MachO::createRegexFromGlob(StringRef Glob) {
- SmallString<128> RegexString("^");
- unsigned NumWildcards = 0;
- for (unsigned i = 0; i < Glob.size(); ++i) {
- char C = Glob[i];
- switch (C) {
- case '?':
- RegexString += '.';
- break;
- case '*': {
- const char *PrevChar = i > 0 ? Glob.data() + i - 1 : nullptr;
- NumWildcards = 1;
- ++i;
- while (i < Glob.size() && Glob[i] == '*') {
- ++NumWildcards;
- ++i;
- }
- const char *NextChar = i < Glob.size() ? Glob.data() + i : nullptr;
-
- if ((NumWildcards > 1) && (PrevChar == nullptr || *PrevChar == '/') &&
- (NextChar == nullptr || *NextChar == '/')) {
- RegexString += "(([^/]*(/|$))*)";
- } else
- RegexString += "([^/]*)";
- break;
- }
- default:
- if (RegexMetachars.find(C) != StringRef::npos)
- RegexString.push_back('\\');
- RegexString.push_back(C);
- }
- }
- RegexString.push_back('$');
- if (NumWildcards == 0)
- return make_error<StringError>("not a glob", inconvertibleErrorCode());
-
- llvm::Regex Rule = Regex(RegexString);
- std::string Error;
- if (!Rule.isValid(Error))
- return make_error<StringError>(Error, inconvertibleErrorCode());
-
- return Rule;
-}
More information about the llvm-commits
mailing list